diff options
| author | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-04-22 15:46:04 +0000 | 
|---|---|---|
| committer | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-04-22 15:46:04 +0000 | 
| commit | 28f8fcf8b034223209ec451d0c2c836124ec93f4 (patch) | |
| tree | 675d12898dda386f8290743f7eaedfb3dcbcdd51 /lib | |
| parent | 468cc977be3d4a00760861efb34aa931c84defbb (diff) | |
| parent | 771c1ad735eb06842278e823a29acb94fd9acafb (diff) | |
| download | pleroma-28f8fcf8b034223209ec451d0c2c836124ec93f4.tar.gz pleroma-28f8fcf8b034223209ec451d0c2c836124ec93f4.zip  | |
Merge branch 'fix/follow-and-blocks-import' into 'develop'
Fix follower/blocks import when nicknames starts with @
Closes #1698
See merge request pleroma/pleroma!2416
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/twitter_api/controllers/util_controller.ex | 26 | ||||
| -rw-r--r-- | lib/pleroma/workers/background_worker.ex | 4 | 
2 files changed, 15 insertions, 15 deletions
diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex index 537f9f778..d5d5ce08f 100644 --- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex @@ -199,15 +199,16 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do    end    def follow_import(%{assigns: %{user: follower}} = conn, %{"list" => list}) do -    with lines <- String.split(list, "\n"), -         followed_identifiers <- -           Enum.map(lines, fn line -> -             String.split(line, ",") |> List.first() -           end) -           |> List.delete("Account address") do -      User.follow_import(follower, followed_identifiers) -      json(conn, "job started") -    end +    followed_identifiers = +      list +      |> String.split("\n") +      |> Enum.map(&(&1 |> String.split(",") |> List.first())) +      |> List.delete("Account address") +      |> Enum.map(&(&1 |> String.trim() |> String.trim_leading("@"))) +      |> Enum.reject(&(&1 == "")) + +    User.follow_import(follower, followed_identifiers) +    json(conn, "job started")    end    def blocks_import(conn, %{"list" => %Plug.Upload{} = listfile}) do @@ -215,10 +216,9 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do    end    def blocks_import(%{assigns: %{user: blocker}} = conn, %{"list" => list}) do -    with blocked_identifiers <- String.split(list) do -      User.blocks_import(blocker, blocked_identifiers) -      json(conn, "job started") -    end +    blocked_identifiers = list |> String.split() |> Enum.map(&String.trim_leading(&1, "@")) +    User.blocks_import(blocker, blocked_identifiers) +    json(conn, "job started")    end    def change_password(%{assigns: %{user: user}} = conn, params) do diff --git a/lib/pleroma/workers/background_worker.ex b/lib/pleroma/workers/background_worker.ex index 0f8ece2c4..57c3a9c3a 100644 --- a/lib/pleroma/workers/background_worker.ex +++ b/lib/pleroma/workers/background_worker.ex @@ -35,7 +35,7 @@ defmodule Pleroma.Workers.BackgroundWorker do          _job        ) do      blocker = User.get_cached_by_id(blocker_id) -    User.perform(:blocks_import, blocker, blocked_identifiers) +    {:ok, User.perform(:blocks_import, blocker, blocked_identifiers)}    end    def perform( @@ -47,7 +47,7 @@ defmodule Pleroma.Workers.BackgroundWorker do          _job        ) do      follower = User.get_cached_by_id(follower_id) -    User.perform(:follow_import, follower, followed_identifiers) +    {:ok, User.perform(:follow_import, follower, followed_identifiers)}    end    def perform(%{"op" => "media_proxy_preload", "message" => message}, _job) do  | 
