Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
a441ee7d
Commit
a441ee7d
authored
Sep 05, 2017
by
lain
Browse files
Workaround for masto reply breakage.
parent
e9ebfdb8
Changes
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/ostatus/handlers/note_handler.ex
View file @
a441ee7d
...
...
@@ -6,17 +6,6 @@ defmodule Pleroma.Web.OStatus.NoteHandler do
alias
Pleroma
.
Web
.
ActivityPub
.
Utils
alias
Pleroma
.
Web
.
TwitterAPI
def
fetch_replied_to_activity
(
entry
,
inReplyTo
)
do
if
inReplyTo
&&
!Object
.
get_cached_by_ap_id
(
inReplyTo
)
do
inReplyToHref
=
XML
.
string_from_xpath
(
"//thr:in-reply-to[1]/@href"
,
entry
)
if
inReplyToHref
do
OStatus
.
fetch_activity_from_url
(
inReplyToHref
)
else
Logger
.
debug
(
"Couldn't find a href link to
#{
inReplyTo
}
"
)
end
end
end
@doc
"""
Get the context for this note. Uses this:
1. The context of the parent activity
...
...
@@ -74,6 +63,20 @@ def add_external_url(note, entry) do
Map
.
put
(
note
,
"external_url"
,
url
)
end
def
fetch_replied_to_activity
(
entry
,
inReplyTo
)
do
with
%
Activity
{}
=
activity
<-
Activity
.
get_create_activity_by_object_ap_id
(
inReplyTo
)
do
activity
else
_e
->
with
inReplyToHref
when
not
is_nil
(
inReplyToHref
)
<-
XML
.
string_from_xpath
(
"//thr:in-reply-to[1]/@href"
,
entry
),
{
:ok
,
[
activity
|
_
]}
<-
OStatus
.
fetch_activity_from_url
(
inReplyToHref
)
do
activity
else
_e
->
nil
end
end
end
def
handle_note
(
entry
,
doc
\\
nil
)
do
with
id
<-
XML
.
string_from_xpath
(
"//id"
,
entry
),
activity
when
is_nil
(
activity
)
<-
Activity
.
get_create_activity_by_object_ap_id
(
id
),
...
...
@@ -81,8 +84,8 @@ def handle_note(entry, doc \\ nil) do
{
:ok
,
actor
}
<-
OStatus
.
find_make_or_update_user
(
author
),
content_html
<-
OStatus
.
get_content
(
entry
),
inReplyTo
<-
XML
.
string_from_xpath
(
"//thr:in-reply-to[1]/@ref"
,
entry
),
_
inReplyToActivity
<-
fetch_replied_to_activity
(
entry
,
inReplyTo
),
inReplyTo
Activity
<-
Activity
.
get_create_activity_by_object_ap_id
(
inReplyTo
)
,
inReplyToActivity
<-
fetch_replied_to_activity
(
entry
,
inReplyTo
),
inReplyTo
<-
(
inReplyToActivity
&&
inReplyToActivity
.
data
[
"object"
][
"id"
])
||
inReplyTo
,
attachments
<-
OStatus
.
get_attachments
(
entry
),
context
<-
get_context
(
entry
,
inReplyTo
),
tags
<-
OStatus
.
get_tags
(
entry
),
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment