Compare commits
2 commits
90ed27939b
...
af349b073a
Author | SHA1 | Date | |
---|---|---|---|
af349b073a | |||
aba4e6ea60 |
17 changed files with 41 additions and 60 deletions
|
@ -224,8 +224,7 @@ defp hell_thread_mentions(users) do
|
|||
|> Enum.reduce([users[:user]], fn group, acc ->
|
||||
acc ++ Enum.take(users[group], 5)
|
||||
end)
|
||||
|> Enum.map(&"@#{&1.nickname}")
|
||||
|> Enum.join(", ")
|
||||
|> Enum.map_join(", ", &"@#{&1.nickname}")
|
||||
|
||||
Cachex.put(:user_cache, "hell_thread_mentions", cached)
|
||||
cached
|
||||
|
|
|
@ -8,6 +8,7 @@ defmodule Mix.Tasks.Pleroma.Activity do
|
|||
alias Pleroma.User
|
||||
alias Pleroma.Web.CommonAPI
|
||||
alias Pleroma.Pagination
|
||||
alias Pleroma.Search.DatabaseSearch
|
||||
require Logger
|
||||
import Mix.Pleroma
|
||||
import Ecto.Query
|
||||
|
@ -24,11 +25,25 @@ def run(["delete_by_keyword", user, keyword | _rest]) do
|
|||
start_pleroma()
|
||||
u = User.get_by_nickname(user)
|
||||
|
||||
index_type =
|
||||
cond do
|
||||
Pleroma.Config.get([:database, :rum_enabled]) -> :rum
|
||||
Pleroma.Config.get([:database, :pgroonga_enabled]) -> :pgroonga
|
||||
true -> :gin
|
||||
end
|
||||
|
||||
search_function =
|
||||
if :persistent_term.get({Pleroma.Repo, :postgres_version}) >= 11 do
|
||||
:websearch
|
||||
else
|
||||
:plain
|
||||
end
|
||||
|
||||
Activity
|
||||
|> Activity.with_preloaded_object()
|
||||
|> Activity.restrict_deactivated_users()
|
||||
|> Activity.Queries.by_author(u)
|
||||
|> query_with(keyword)
|
||||
|> DatabaseSearch.query_with(index_type, keyword, search_function)
|
||||
|> Pagination.fetch_paginated(
|
||||
%{"offset" => 0, "limit" => 20, "skip_order" => false},
|
||||
:offset
|
||||
|
@ -37,22 +52,4 @@ def run(["delete_by_keyword", user, keyword | _rest]) do
|
|||
|> Enum.count()
|
||||
|> IO.puts()
|
||||
end
|
||||
|
||||
defp query_with(q, search_query) do
|
||||
%{rows: [[tsc]]} =
|
||||
Ecto.Adapters.SQL.query!(
|
||||
Pleroma.Repo,
|
||||
"select current_setting('default_text_search_config')::regconfig::oid;"
|
||||
)
|
||||
|
||||
from([a, o] in q,
|
||||
where:
|
||||
fragment(
|
||||
"to_tsvector(?::oid::regconfig, ?->>'content') @@ websearch_to_tsquery(?)",
|
||||
^tsc,
|
||||
o.data,
|
||||
^search_query
|
||||
)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -303,7 +303,7 @@ def run(["gen" | rest]) do
|
|||
else
|
||||
shell_error(
|
||||
"The task would have overwritten the following files:\n" <>
|
||||
(Enum.map(will_overwrite, &"- #{&1}\n") |> Enum.join("")) <>
|
||||
Enum.map_join(will_overwrite, "", &"- #{&1}\n") <>
|
||||
"Rerun with `--force` to overwrite them."
|
||||
)
|
||||
end
|
||||
|
|
|
@ -43,7 +43,7 @@ def report(to, reporter, account, statuses, comment) do
|
|||
if is_list(statuses) && length(statuses) > 0 do
|
||||
statuses_list_html =
|
||||
statuses
|
||||
|> Enum.map(fn
|
||||
|> Enum.map_join("\n", fn
|
||||
%{id: id} ->
|
||||
status_url = Helpers.o_status_url(Pleroma.Web.Endpoint, :notice, id)
|
||||
"<li><a href=\"#{status_url}\">#{status_url}</li>"
|
||||
|
@ -54,7 +54,6 @@ def report(to, reporter, account, statuses, comment) do
|
|||
id when is_binary(id) ->
|
||||
"<li><a href=\"#{id}\">#{id}</li>"
|
||||
end)
|
||||
|> Enum.join("\n")
|
||||
|
||||
"""
|
||||
<p> Statuses:
|
||||
|
|
|
@ -134,10 +134,9 @@ defp update_emojis(emojis) do
|
|||
|> hd()
|
||||
|> String.trim()
|
||||
|> String.split()
|
||||
|> Enum.map(fn codepoint ->
|
||||
|> Enum.map_join(fn codepoint ->
|
||||
<<String.to_integer(codepoint, 16)::utf8>>
|
||||
end)
|
||||
|> Enum.join()
|
||||
end)
|
||||
|> Enum.uniq()
|
||||
|
||||
|
|
|
@ -207,8 +207,7 @@ def compose_regex(%User{} = user, format) do
|
|||
def compose_regex([_ | _] = filters, format) do
|
||||
phrases =
|
||||
filters
|
||||
|> Enum.map(& &1.phrase)
|
||||
|> Enum.join("|")
|
||||
|> Enum.map_join("|", & &1.phrase)
|
||||
|
||||
case format do
|
||||
:postgres ->
|
||||
|
|
|
@ -556,14 +556,12 @@ def get_log_entry_message(%ModerationLog{
|
|||
|
||||
defp nicknames_to_string(nicknames) do
|
||||
nicknames
|
||||
|> Enum.map(&"@#{&1}")
|
||||
|> Enum.join(", ")
|
||||
|> Enum.map_join(", ", &"@#{&1}")
|
||||
end
|
||||
|
||||
defp users_to_nicknames_string(users) do
|
||||
users
|
||||
|> Enum.map(&"@#{&1["nickname"]}")
|
||||
|> Enum.join(", ")
|
||||
|> Enum.map_join(", ", &"@#{&1["nickname"]}")
|
||||
end
|
||||
|
||||
defp subject_actor_nickname(%ModerationLog{data: data}, prefix_msg, postfix_msg \\ "") do
|
||||
|
|
|
@ -78,7 +78,7 @@ def restrict_public(q) do
|
|||
)
|
||||
end
|
||||
|
||||
defp query_with(q, :gin, search_query, :plain) do
|
||||
def query_with(q, :gin, search_query, :plain) do
|
||||
%{rows: [[tsc]]} =
|
||||
Ecto.Adapters.SQL.query!(
|
||||
Pleroma.Repo,
|
||||
|
@ -96,7 +96,7 @@ defp query_with(q, :gin, search_query, :plain) do
|
|||
)
|
||||
end
|
||||
|
||||
defp query_with(q, :gin, search_query, :websearch) do
|
||||
def query_with(q, :gin, search_query, :websearch) do
|
||||
%{rows: [[tsc]]} =
|
||||
Ecto.Adapters.SQL.query!(
|
||||
Pleroma.Repo,
|
||||
|
@ -114,7 +114,7 @@ defp query_with(q, :gin, search_query, :websearch) do
|
|||
)
|
||||
end
|
||||
|
||||
defp query_with(q, :rum, search_query, :plain) do
|
||||
def query_with(q, :rum, search_query, :plain) do
|
||||
from([a, o] in q,
|
||||
where:
|
||||
fragment(
|
||||
|
@ -126,7 +126,7 @@ defp query_with(q, :rum, search_query, :plain) do
|
|||
)
|
||||
end
|
||||
|
||||
defp query_with(q, :rum, search_query, :websearch) do
|
||||
def query_with(q, :rum, search_query, :websearch) do
|
||||
from([a, o] in q,
|
||||
where:
|
||||
fragment(
|
||||
|
@ -138,7 +138,7 @@ defp query_with(q, :rum, search_query, :websearch) do
|
|||
)
|
||||
end
|
||||
|
||||
defp query_with(q, :pgroonga, search_query, _) do
|
||||
def query_with(q, :pgroonga, search_query, _) do
|
||||
# PGroonga only supports PostgreSQL version 11 or newer
|
||||
from([a, o] in q,
|
||||
where:
|
||||
|
|
|
@ -134,8 +134,7 @@ defp to_tsquery(query_string) do
|
|||
|> String.replace(~r/[!-\/|@|[-`|{-~|:-?]+/, " ")
|
||||
|> String.trim()
|
||||
|> String.split()
|
||||
|> Enum.map(&(&1 <> ":*"))
|
||||
|> Enum.join(" | ")
|
||||
|> Enum.map_join(" | ", &(&1 <> ":*"))
|
||||
end
|
||||
|
||||
# Considers nickname match, localized nickname match, name match; preferences nickname match
|
||||
|
|
|
@ -30,7 +30,7 @@ def call(conn, errors) do
|
|||
conn
|
||||
|> put_status(:bad_request)
|
||||
|> json(%{
|
||||
error: errors |> Enum.map(&message/1) |> Enum.join(" "),
|
||||
error: errors |> Enum.map_join(" ", &message/1),
|
||||
errors: errors |> Enum.map(&render_error/1)
|
||||
})
|
||||
end
|
||||
|
|
|
@ -167,8 +167,7 @@ defp preprocess_uri_query(query) do
|
|||
|
||||
defp joined_tag(tags) do
|
||||
tags
|
||||
|> Enum.map(fn tag -> String.capitalize(tag) end)
|
||||
|> Enum.join()
|
||||
|> Enum.map_join(fn tag -> String.capitalize(tag) end)
|
||||
end
|
||||
|
||||
defp with_fallback(f, fallback \\ []) do
|
||||
|
|
|
@ -15,8 +15,7 @@ def build_static_tags(params) do
|
|||
params
|
||||
|> parser.build_tags()
|
||||
|> Enum.map(&to_tag/1)
|
||||
|> Enum.map(&HTML.safe_to_string/1)
|
||||
|> Enum.join()
|
||||
|> Enum.map_join(&HTML.safe_to_string/1)
|
||||
|
||||
acc <> rendered_html
|
||||
end)
|
||||
|
@ -35,8 +34,7 @@ def build_tags(params) do
|
|||
params
|
||||
|> parser.build_tags()
|
||||
|> Enum.map(&to_tag/1)
|
||||
|> Enum.map(&HTML.safe_to_string/1)
|
||||
|> Enum.join()
|
||||
|> Enum.map_join(&HTML.safe_to_string/1)
|
||||
|
||||
acc <> rendered_html
|
||||
end)
|
||||
|
|
|
@ -244,8 +244,7 @@ defp attach_selected_params(input, %{conn_params: conn_params, opts: plug_opts})
|
|||
plug_opts
|
||||
|> Keyword.get(:params, [])
|
||||
|> Enum.sort()
|
||||
|> Enum.map(&Map.get(conn_params, &1, ""))
|
||||
|> Enum.join(":")
|
||||
|> Enum.map_join(":", &Map.get(conn_params, &1, ""))
|
||||
|
||||
[input, params_string]
|
||||
|> Enum.join(":")
|
||||
|
|
|
@ -94,8 +94,7 @@ test "logging user tagged by admin", %{admin: admin, subject1: subject1, subject
|
|||
|
||||
users =
|
||||
[subject1.nickname, subject2.nickname]
|
||||
|> Enum.map(&"@#{&1}")
|
||||
|> Enum.join(", ")
|
||||
|> Enum.map_join(", ", &"@#{&1}")
|
||||
|
||||
tags = ["foo", "bar"] |> Enum.join(", ")
|
||||
|
||||
|
@ -115,8 +114,7 @@ test "logging user untagged by admin", %{admin: admin, subject1: subject1, subje
|
|||
|
||||
users =
|
||||
[subject1.nickname, subject2.nickname]
|
||||
|> Enum.map(&"@#{&1}")
|
||||
|> Enum.join(", ")
|
||||
|> Enum.map_join(", ", &"@#{&1}")
|
||||
|
||||
tags = ["foo", "bar"] |> Enum.join(", ")
|
||||
|
||||
|
|
|
@ -122,8 +122,7 @@ test "it appends specified tags to users with specified nicknames", %{
|
|||
|
||||
users =
|
||||
[user1.nickname, user2.nickname]
|
||||
|> Enum.map(&"@#{&1}")
|
||||
|> Enum.join(", ")
|
||||
|> Enum.map_join(", ", &"@#{&1}")
|
||||
|
||||
tags = ["foo", "bar"] |> Enum.join(", ")
|
||||
|
||||
|
@ -168,8 +167,7 @@ test "it removes specified tags from users with specified nicknames", %{
|
|||
|
||||
users =
|
||||
[user1.nickname, user2.nickname]
|
||||
|> Enum.map(&"@#{&1}")
|
||||
|> Enum.join(", ")
|
||||
|> Enum.map_join(", ", &"@#{&1}")
|
||||
|
||||
tags = ["x", "z"] |> Enum.join(", ")
|
||||
|
||||
|
|
|
@ -247,8 +247,7 @@ test "Removes a conversation", %{user: user_one, conn: conn} do
|
|||
defp create_direct_message(sender, recips) do
|
||||
hellos =
|
||||
recips
|
||||
|> Enum.map(fn s -> "@#{s.nickname}" end)
|
||||
|> Enum.join(", ")
|
||||
|> Enum.map_join(", ", fn s -> "@#{s.nickname}" end)
|
||||
|
||||
CommonAPI.post(sender, %{
|
||||
status: "Hi #{hellos}!",
|
||||
|
|
|
@ -630,8 +630,8 @@ test "update fields when invalid request", %{conn: conn} do
|
|||
name_limit = Pleroma.Config.get([:instance, :account_field_name_length])
|
||||
value_limit = Pleroma.Config.get([:instance, :account_field_value_length])
|
||||
|
||||
long_name = Enum.map(0..name_limit, fn _ -> "x" end) |> Enum.join()
|
||||
long_value = Enum.map(0..value_limit, fn _ -> "x" end) |> Enum.join()
|
||||
long_name = Enum.map_join(0..name_limit, fn _ -> "x" end)
|
||||
long_value = Enum.map_join(0..value_limit, fn _ -> "x" end)
|
||||
|
||||
fields = [%{name: "foo", value: long_value}]
|
||||
|
||||
|
|
Loading…
Reference in a new issue