From e94c3442f4b88f4eedf4e4cc67e91a1375df6afd Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Mon, 10 Dec 2018 09:39:57 +0300 Subject: [PATCH] updates --- lib/mix/tasks/pleroma/uploads.ex | 2 +- lib/pleroma/upload.ex | 2 ++ lib/pleroma/upload/filter/dedupe.ex | 5 +++-- .../web/admin_api/admin_api_controller.ex | 3 ++- lib/pleroma/web/federator/retry_queue.ex | 4 ++-- .../web/mastodon_api/mastodon_socket.ex | 13 ++++++++---- lib/pleroma/web/media_proxy/controller.ex | 8 +++---- lib/pleroma/web/ostatus/ostatus.ex | 21 +++++++------------ 8 files changed, 31 insertions(+), 27 deletions(-) diff --git a/lib/mix/tasks/pleroma/uploads.ex b/lib/mix/tasks/pleroma/uploads.ex index 45bfd254c..c6b840130 100644 --- a/lib/mix/tasks/pleroma/uploads.ex +++ b/lib/mix/tasks/pleroma/uploads.ex @@ -57,7 +57,7 @@ def run(["migrate_local", target_uploader | args]) do File.exists?(root_path) -> file = Path.basename(id) - [hash, _ext] = String.split(id, ".") + hash = Path.rootname(id) {%Pleroma.Upload{id: hash, name: file, path: file, tempfile: root_path}, root_path} true -> diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex index 77cba2cd2..07031ac58 100644 --- a/lib/pleroma/upload.ex +++ b/lib/pleroma/upload.ex @@ -214,4 +214,6 @@ defp url_from_spec(base_url, {:file, path}) do [base_url, "media", path] |> Path.join() end + + defp url_from_spec(_base_url, {:url, url}), do: url end diff --git a/lib/pleroma/upload/filter/dedupe.ex b/lib/pleroma/upload/filter/dedupe.ex index 81ddd9b29..0657b2c8d 100644 --- a/lib/pleroma/upload/filter/dedupe.ex +++ b/lib/pleroma/upload/filter/dedupe.ex @@ -1,10 +1,11 @@ defmodule Pleroma.Upload.Filter.Dedupe do @behaviour Pleroma.Upload.Filter + alias Pleroma.Upload - def filter(upload = %Pleroma.Upload{name: name, tempfile: _path}) do + def filter(upload = %Upload{name: name}) do extension = String.split(name, ".") |> List.last() shasum = :crypto.hash(:sha256, File.read!(upload.tempfile)) |> Base.encode16(case: :lower) filename = shasum <> "." <> extension - {:ok, %Pleroma.Upload{upload | id: shasum, path: filename}} + {:ok, %Upload{upload | id: shasum, path: filename}} end end diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 451a87900..06c3c7c81 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -63,7 +63,8 @@ def right_add(conn, %{"permission_group" => permission_group, "nickname" => nick info_cng = User.Info.admin_api_update(user.info, info) cng = - Ecto.Changeset.change(user) + user + |> Ecto.Changeset.change() |> Ecto.Changeset.put_embed(:info, info_cng) {:ok, _user} = User.update_and_set_cache(cng) diff --git a/lib/pleroma/web/federator/retry_queue.ex b/lib/pleroma/web/federator/retry_queue.ex index 3997d68a7..510b4315d 100644 --- a/lib/pleroma/web/federator/retry_queue.ex +++ b/lib/pleroma/web/federator/retry_queue.ex @@ -37,11 +37,11 @@ def get_retry_params(retries) do def handle_cast({:maybe_enqueue, data, transport, retries}, %{dropped: drop_count} = state) do case get_retry_params(retries) do - {:retry, _timeout} -> + {:retry, timeout} -> Process.send_after( __MODULE__, {:send, data, transport, retries}, - growth_function(retries) + timeout ) {:noreply, state} diff --git a/lib/pleroma/web/mastodon_api/mastodon_socket.ex b/lib/pleroma/web/mastodon_api/mastodon_socket.ex index d85f2a462..755ac5730 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_socket.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_socket.ex @@ -11,6 +11,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonSocket do timeout: :infinity ) + @spec connect(params :: map(), Phoenix.Socket.t()) :: {:ok, Phoenix.Socket.t()} | :error def connect(%{"access_token" => token} = params, socket) do with %Token{user_id: user_id} <- Repo.get_by(Token, token: token), %User{} = user <- Repo.get(User, user_id), @@ -52,12 +53,16 @@ def connect(%{"stream" => stream} = params, socket) _ -> stream end - with socket <- assign(socket, :topic, topic) do - Pleroma.Web.Streamer.add_socket(topic, socket) - {:ok, socket} - end + socket = + socket + |> assign(:topic, topic) + + Pleroma.Web.Streamer.add_socket(topic, socket) + {:ok, socket} end + def connect(_params, _socket), do: :error + def id(_), do: nil def handle(:text, message, _state) do diff --git a/lib/pleroma/web/media_proxy/controller.ex b/lib/pleroma/web/media_proxy/controller.ex index ce4f15be0..63140feb9 100644 --- a/lib/pleroma/web/media_proxy/controller.ex +++ b/lib/pleroma/web/media_proxy/controller.ex @@ -8,7 +8,6 @@ def remote(conn, params = %{"sig" => sig64, "url" => url64}) do with config <- Pleroma.Config.get([:media_proxy], []), true <- Keyword.get(config, :enabled, false), {:ok, url} <- MediaProxy.decode_url(sig64, url64), - _filename <- Path.basename(URI.parse(url).path), :ok <- filename_matches(Map.has_key?(params, "filename"), conn.request_path, url) do ReverseProxy.call(conn, url, Keyword.get(config, :proxy_opts, @default_proxy_opts)) else @@ -31,9 +30,10 @@ def filename_matches(has_filename, path, url) do path = URI.decode(path) - cond do - has_filename && filename && Path.basename(path) != filename -> {:wrong_filename, filename} - true -> :ok + if has_filename && filename && Path.basename(path) != filename do + {:wrong_filename, filename} + else + :ok end end end diff --git a/lib/pleroma/web/ostatus/ostatus.ex b/lib/pleroma/web/ostatus/ostatus.ex index 3ad2e7591..c6440c20e 100644 --- a/lib/pleroma/web/ostatus/ostatus.ex +++ b/lib/pleroma/web/ostatus/ostatus.ex @@ -375,19 +375,14 @@ def fetch_activity_from_html_url(url) do end def fetch_activity_from_url(url) do - try do - with {:ok, activities} when activities != [] <- fetch_activity_from_atom_url(url) do - {:ok, activities} - else - _e -> - with {:ok, activities} <- fetch_activity_from_html_url(url) do - {:ok, activities} - end - end - rescue - e -> - Logger.debug("Couldn't get #{url}: #{inspect(e)}") - {:error, "Couldn't get #{url}: #{inspect(e)}"} + with {:ok, [_ | _] = activities} <- fetch_activity_from_atom_url(url) do + {:ok, activities} + else + _e -> fetch_activity_from_html_url(url) end + rescue + e -> + Logger.debug("Couldn't get #{url}: #{inspect(e)}") + {:error, "Couldn't get #{url}: #{inspect(e)}"} end end