import Ecto.Query
alias Pleroma.Repo
- alias Pleroma.Web.MastodonAPI.TimelineController
def run(_args) do
Mix.Pleroma.start_pleroma()
Benchee.run(
%{
"Hashtag fetching, any" => fn tags ->
- TimelineController.hashtag_fetching(
+ hashtag_fetching(
%{
"any" => tags
},
end,
# Will always return zero results because no overlapping hashtags are generated.
"Hashtag fetching, all" => fn tags ->
- TimelineController.hashtag_fetching(
+ hashtag_fetching(
%{
"all" => tags
},
Benchee.run(
%{
"Hashtag fetching" => fn tag ->
- TimelineController.hashtag_fetching(
+ hashtag_fetching(
%{
"tag" => tag
},
time: 5
)
end
+
+ defp hashtag_fetching(params, user, local_only) do
+ tags =
+ [params["tag"], params["any"]]
+ |> List.flatten()
+ |> Enum.uniq()
+ |> Enum.filter(& &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 =
+ %{
+ type: "Create",
+ local_only: local_only,
+ blocking_user: user,
+ muting_user: user,
+ user: user,
+ tag: tags,
+ tag_all: tag_all,
+ tag_reject: tag_reject,
+ }
+ |> Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities()
+ end
end