Merge branch 'emoji-use-v1-api' into 'develop'
Make remote emoji packs API use specifically the V1 URL See merge request pleroma/pleroma!4028
This commit is contained in:
commit
8bc59e9743
|
@ -0,0 +1 @@
|
||||||
|
When downloading remote emojis packs, account for pagination
|
|
@ -0,0 +1 @@
|
||||||
|
Make remote emoji packs API use specifically the V1 URL. Akkoma does not understand it without V1, and it works either way with normal pleroma, so no reason to not do this
|
|
@ -209,7 +209,9 @@ def list_remote(opts) do
|
||||||
|
|
||||||
with :ok <- validate_shareable_packs_available(uri) do
|
with :ok <- validate_shareable_packs_available(uri) do
|
||||||
uri
|
uri
|
||||||
|> URI.merge("/api/pleroma/emoji/packs?page=#{opts[:page]}&page_size=#{opts[:page_size]}")
|
|> URI.merge(
|
||||||
|
"/api/v1/pleroma/emoji/packs?page=#{opts[:page]}&page_size=#{opts[:page_size]}"
|
||||||
|
)
|
||||||
|> http_get()
|
|> http_get()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -249,8 +251,12 @@ def download(name, url, as) do
|
||||||
uri = url |> String.trim() |> URI.parse()
|
uri = url |> String.trim() |> URI.parse()
|
||||||
|
|
||||||
with :ok <- validate_shareable_packs_available(uri),
|
with :ok <- validate_shareable_packs_available(uri),
|
||||||
|
{:ok, %{"files_count" => files_count}} <-
|
||||||
|
uri |> URI.merge("/api/v1/pleroma/emoji/pack?name=#{name}&page_size=0") |> http_get(),
|
||||||
{:ok, remote_pack} <-
|
{:ok, remote_pack} <-
|
||||||
uri |> URI.merge("/api/pleroma/emoji/pack?name=#{name}") |> http_get(),
|
uri
|
||||||
|
|> URI.merge("/api/v1/pleroma/emoji/pack?name=#{name}&page_size=#{files_count}")
|
||||||
|
|> http_get(),
|
||||||
{:ok, %{sha: sha, url: url} = pack_info} <- fetch_pack_info(remote_pack, uri, name),
|
{:ok, %{sha: sha, url: url} = pack_info} <- fetch_pack_info(remote_pack, uri, name),
|
||||||
{:ok, archive} <- download_archive(url, sha),
|
{:ok, archive} <- download_archive(url, sha),
|
||||||
pack <- copy_as(remote_pack, as || name),
|
pack <- copy_as(remote_pack, as || name),
|
||||||
|
@ -592,7 +598,7 @@ defp fetch_pack_info(remote_pack, uri, name) do
|
||||||
{:ok,
|
{:ok,
|
||||||
%{
|
%{
|
||||||
sha: sha,
|
sha: sha,
|
||||||
url: URI.merge(uri, "/api/pleroma/emoji/packs/archive?name=#{name}") |> to_string()
|
url: URI.merge(uri, "/api/v1/pleroma/emoji/packs/archive?name=#{name}") |> to_string()
|
||||||
}}
|
}}
|
||||||
|
|
||||||
%{"fallback-src" => src, "fallback-src-sha256" => sha} when is_binary(src) ->
|
%{"fallback-src" => src, "fallback-src-sha256" => sha} when is_binary(src) ->
|
||||||
|
|
|
@ -116,7 +116,7 @@ test "shareable instance", %{admin_conn: admin_conn, conn: conn} do
|
||||||
%{method: :get, url: "https://example.com/nodeinfo/2.1.json"} ->
|
%{method: :get, url: "https://example.com/nodeinfo/2.1.json"} ->
|
||||||
json(%{metadata: %{features: ["shareable_emoji_packs"]}})
|
json(%{metadata: %{features: ["shareable_emoji_packs"]}})
|
||||||
|
|
||||||
%{method: :get, url: "https://example.com/api/pleroma/emoji/packs?page=2&page_size=1"} ->
|
%{method: :get, url: "https://example.com/api/v1/pleroma/emoji/packs?page=2&page_size=1"} ->
|
||||||
json(resp)
|
json(resp)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ test "shared pack from remote and non shared from fallback-src", %{
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/pack?name=test_pack"
|
url: "https://example.com/api/v1/pleroma/emoji/pack?name=test_pack&page_size=" <> _n
|
||||||
} ->
|
} ->
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/emoji/pack?name=test_pack")
|
|> get("/api/pleroma/emoji/pack?name=test_pack")
|
||||||
|
@ -208,7 +208,7 @@ test "shared pack from remote and non shared from fallback-src", %{
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/packs/archive?name=test_pack"
|
url: "https://example.com/api/v1/pleroma/emoji/packs/archive?name=test_pack"
|
||||||
} ->
|
} ->
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/emoji/packs/archive?name=test_pack")
|
|> get("/api/pleroma/emoji/packs/archive?name=test_pack")
|
||||||
|
@ -217,7 +217,9 @@ test "shared pack from remote and non shared from fallback-src", %{
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/pack?name=test_pack_nonshared"
|
url:
|
||||||
|
"https://example.com/api/v1/pleroma/emoji/pack?name=test_pack_nonshared&page_size=" <>
|
||||||
|
_n
|
||||||
} ->
|
} ->
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/emoji/pack?name=test_pack_nonshared")
|
|> get("/api/pleroma/emoji/pack?name=test_pack_nonshared")
|
||||||
|
@ -305,14 +307,14 @@ test "checksum fail", %{admin_conn: admin_conn} do
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/pack?name=pack_bad_sha"
|
url: "https://example.com/api/v1/pleroma/emoji/pack?name=pack_bad_sha&page_size=" <> _n
|
||||||
} ->
|
} ->
|
||||||
{:ok, pack} = Pleroma.Emoji.Pack.load_pack("pack_bad_sha")
|
{:ok, pack} = Pleroma.Emoji.Pack.load_pack("pack_bad_sha")
|
||||||
%Tesla.Env{status: 200, body: Jason.encode!(pack)}
|
%Tesla.Env{status: 200, body: Jason.encode!(pack)}
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/packs/archive?name=pack_bad_sha"
|
url: "https://example.com/api/v1/pleroma/emoji/packs/archive?name=pack_bad_sha"
|
||||||
} ->
|
} ->
|
||||||
%Tesla.Env{
|
%Tesla.Env{
|
||||||
status: 200,
|
status: 200,
|
||||||
|
@ -342,7 +344,7 @@ test "other error", %{admin_conn: admin_conn} do
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/pack?name=test_pack"
|
url: "https://example.com/api/v1/pleroma/emoji/pack?name=test_pack&page_size=" <> _n
|
||||||
} ->
|
} ->
|
||||||
{:ok, pack} = Pleroma.Emoji.Pack.load_pack("test_pack")
|
{:ok, pack} = Pleroma.Emoji.Pack.load_pack("test_pack")
|
||||||
%Tesla.Env{status: 200, body: Jason.encode!(pack)}
|
%Tesla.Env{status: 200, body: Jason.encode!(pack)}
|
||||||
|
|
Loading…
Reference in New Issue