Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33103343
ensure_re_prepended.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
ensure_re_prepended.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.ActivityPub.MRF.EnsureRePrepended
do
alias
Pleroma.Object
@moduledoc
"Ensure a re: is prepended on replies to a post with a Subject"
@behaviour
Pleroma.Web.ActivityPub.MRF.Policy
@reply_prefix
Regex
.
compile!
(
"^re:[[:space:]]*"
,
[
:caseless
])
def
history_awareness
,
do
:
:auto
def
filter_by_summary
(
%{
data
:
%{
"summary"
=>
parent_summary
}}
=
_in_reply_to
,
%{
"summary"
=>
child_summary
}
=
child
)
when
not
is_nil
(
child_summary
)
and
byte_size
(
child_summary
)
>
0
and
not
is_nil
(
parent_summary
)
and
byte_size
(
parent_summary
)
>
0
do
if
(
child_summary
==
parent_summary
and
not
Regex
.
match?
(
@reply_prefix
,
child_summary
))
or
(
Regex
.
match?
(
@reply_prefix
,
parent_summary
)
&&
Regex
.
replace
(
@reply_prefix
,
parent_summary
,
""
)
==
child_summary
)
do
Map
.
put
(
child
,
"summary"
,
"re: "
<>
child_summary
)
else
child
end
end
def
filter_by_summary
(
_in_reply_to
,
child
),
do
:
child
def
filter
(%{
"type"
=>
type
,
"object"
=>
child_object
}
=
object
)
when
type
in
[
"Create"
,
"Update"
]
and
is_map
(
child_object
)
do
child
=
child_object
[
"inReplyTo"
]
|>
Object
.
normalize
(
fetch
:
false
)
|>
filter_by_summary
(
child_object
)
object
=
Map
.
put
(
object
,
"object"
,
child
)
{
:ok
,
object
}
end
def
filter
(
object
),
do
:
{
:ok
,
object
}
def
describe
,
do
:
{
:ok
,
%{}}
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Tue, Jan 20, 1:41 PM (1 d, 2 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
973444
Default Alt Text
ensure_re_prepended.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment