diff --git a/lib/pleroma/web/ostatus/ostatus.ex b/lib/pleroma/web/ostatus/ostatus.ex
index f8e33bc7e..cd471f860 100644
--- a/lib/pleroma/web/ostatus/ostatus.ex
+++ b/lib/pleroma/web/ostatus/ostatus.ex
@@ -30,6 +30,9 @@ def handle_incoming(xml_string) do
'http://activitystrea.ms/schema/1.0/note' ->
{:ok, activity} = handle_note(entry, doc)
activity
+ 'http://activitystrea.ms/schema/1.0/comment' ->
+ {:ok, activity} = handle_note(entry, doc)
+ activity
_ ->
Logger.error("Couldn't parse incoming document")
nil
@@ -74,7 +77,7 @@ def handle_note(entry, doc \\ nil) do
"actor" => actor.ap_id
}
- inReplyTo = string_from_xpath("/entry/thr:in-reply-to[1]/@href", entry)
+ inReplyTo = string_from_xpath("/entry/thr:in-reply-to[1]/@ref", entry)
object = if inReplyTo do
Map.put(object, "inReplyTo", inReplyTo)
diff --git a/test/fixtures/ostatus_incoming_reply.xml b/test/fixtures/ostatus_incoming_reply.xml
new file mode 100644
index 000000000..83a427a68
--- /dev/null
+++ b/test/fixtures/ostatus_incoming_reply.xml
@@ -0,0 +1,60 @@
+
+
+ GNU social
+ https://social.heldscal.la/api/statuses/user_timeline/23211.atom
+ lambadalambda timeline
+ Updates from lambadalambda on social.heldscal.la!
+ https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg
+ 2017-04-30T09:30:32+00:00
+
+ http://activitystrea.ms/schema/1.0/person
+ https://social.heldscal.la/user/23211
+ lambadalambda
+ Call me Deacon Blues.
+
+
+
+
+
+ lambadalambda
+ Constance Variable
+ Call me Deacon Blues.
+
+ Berlin
+
+
+ homepage
+ https://heldscal.la
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ http://activitystrea.ms/schema/1.0/comment
+ tag:social.heldscal.la,2017-04-30:noticeId=1978790:objectType=comment
+ New comment by lambadalambda
+ @<a href="https://gs.archae.me/user/4687" class="h-card u-url p-nickname mention" title="shpbot">shpbot</a> why not indeed.
+
+
+ http://activitystrea.ms/schema/1.0/post
+ 2017-04-30T09:30:32+00:00
+ 2017-04-30T09:30:32+00:00
+
+
+
+ https://gs.archae.me/conversation/327120
+
+
+
+
+
+
+
diff --git a/test/web/ostatus/ostatus_test.exs b/test/web/ostatus/ostatus_test.exs
index a53e0ebde..5452e5888 100644
--- a/test/web/ostatus/ostatus_test.exs
+++ b/test/web/ostatus/ostatus_test.exs
@@ -24,6 +24,17 @@ test "handle incoming notes - GS, subscription" do
assert activity.data["object"]["content"] == "Will it blend?"
end
+ test "handle incoming notes - GS, subscription, reply" do
+ incoming = File.read!("test/fixtures/ostatus_incoming_reply.xml")
+ {:ok, [activity]} = OStatus.handle_incoming(incoming)
+
+ assert activity.data["type"] == "Create"
+ assert activity.data["object"]["type"] == "Note"
+ assert activity.data["object"]["actor"] == "https://social.heldscal.la/user/23211"
+ assert activity.data["object"]["content"] == "@shpbot why not indeed."
+ assert activity.data["object"]["inReplyTo"] == "tag:gs.archae.me,2017-04-30:noticeId=778260:objectType=note"
+ end
+
test "handle incoming replies" do
incoming = File.read!("test/fixtures/incoming_note_activity_answer.xml")
{:ok, [activity]} = OStatus.handle_incoming(incoming)