forked from AkkomaGang/akkoma
Harden re: detection.
This commit is contained in:
parent
6a6aaa0e1a
commit
3dff61ebec
1 changed files with 6 additions and 3 deletions
|
@ -3,13 +3,16 @@ defmodule Pleroma.Web.ActivityPub.MRF.EnsureRePrepended do
|
||||||
|
|
||||||
@behaviour Pleroma.Web.ActivityPub.MRF
|
@behaviour Pleroma.Web.ActivityPub.MRF
|
||||||
|
|
||||||
|
@have_re Regex.compile!("^re:[[:space:]]*", [:caseless])
|
||||||
def filter_by_summary(
|
def filter_by_summary(
|
||||||
%{"summary" => parent_summary} = parent,
|
%{"summary" => parent_summary} = parent,
|
||||||
%{"summary" => child_summary} = child
|
%{"summary" => child_summary} = child
|
||||||
)
|
)
|
||||||
when not is_nil(child_summary) and child_summary == parent_summary and
|
when not is_nil(child_summary) and byte_size(child_summary) > 0 and
|
||||||
byte_size(child_summary) > 1 do
|
not is_nil(parent_summary) and byte_size(parent_summary) > 0 do
|
||||||
if not String.starts_with?(child_summary, "re:") do
|
if (child_summary == parent_summary and not Regex.match?(@have_re, child_summary)) or
|
||||||
|
(Regex.match?(@have_re, parent_summary) &&
|
||||||
|
Regex.replace(@have_re, parent_summary, "") == child_summary) do
|
||||||
Map.put(child, "summary", "re: " <> child_summary)
|
Map.put(child, "summary", "re: " <> child_summary)
|
||||||
else
|
else
|
||||||
child
|
child
|
||||||
|
|
Loading…
Reference in a new issue