Merge remote-tracking branch 'pleroma/develop' into cycles-views
authorAlex Gleason <alex@alexgleason.me>
Sat, 29 May 2021 17:17:24 +0000 (12:17 -0500)
committerAlex Gleason <alex@alexgleason.me>
Sat, 29 May 2021 17:17:24 +0000 (12:17 -0500)
1  2 
lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex

index 3f584977703f60d2af7c3db58545f67369a19291,c611958be09ac3f603e67ccd3cbcab2cf0f93747..845f546d4b7ec12a97d92ab1837a6753cb764bc9
@@@ -37,6 -37,8 +37,6 @@@ defmodule Pleroma.Web.MastodonAPI.Timel
      when action in [:public, :hashtag]
    )
  
 -  plug(:put_view, Pleroma.Web.MastodonAPI.StatusView)
 -
    defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.TimelineOperation
  
    # GET /api/v1/timelines/home
    end
  
    defp hashtag_fetching(params, user, local_only) do
-     tags =
+     # Note: not sanitizing tag options at this stage (may be mix-cased, have duplicates etc.)
+     tags_any =
        [params[:tag], params[:any]]
        |> List.flatten()
-       |> Enum.uniq()
-       |> Enum.reject(&is_nil/1)
-       |> Enum.map(&String.downcase/1)
-     tag_all =
-       params
-       |> Map.get(:all, [])
-       |> Enum.map(&String.downcase/1)
-     tag_reject =
-       params
-       |> Map.get(:none, [])
-       |> Enum.map(&String.downcase/1)
-     _activities =
-       params
-       |> Map.put(:type, "Create")
-       |> Map.put(:local_only, local_only)
-       |> Map.put(:blocking_user, user)
-       |> Map.put(:muting_user, user)
-       |> Map.put(:user, user)
-       |> Map.put(:tag, tags)
-       |> Map.put(:tag_all, tag_all)
-       |> Map.put(:tag_reject, tag_reject)
-       |> ActivityPub.fetch_public_activities()
+       |> Enum.filter(& &1)
+     tag_all = Map.get(params, :all, [])
+     tag_reject = Map.get(params, :none, [])
+     params
+     |> Map.put(:type, "Create")
+     |> Map.put(:local_only, local_only)
+     |> Map.put(:blocking_user, user)
+     |> Map.put(:muting_user, user)
+     |> Map.put(:user, user)
+     |> Map.put(:tag, tags_any)
+     |> Map.put(:tag_all, tag_all)
+     |> Map.put(:tag_reject, tag_reject)
+     |> ActivityPub.fetch_public_activities()
    end
  
    # GET /api/v1/timelines/tag/:tag