diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-05-02 21:31:01 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-05-02 21:31:01 +0200 |
commit | 018a1a390fdb72652c615c28ac36f1b9a6a84d82 (patch) | |
tree | 990b1da8159119290185066847f9b93d513dc6f0 /lib | |
parent | 33c803d6da91e0253a100cbd480d253706c44964 (diff) | |
download | pleroma-018a1a390fdb72652c615c28ac36f1b9a6a84d82.tar.gz |
Use inReplyTo to find context.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/ostatus/ostatus.ex | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus.ex b/lib/pleroma/web/ostatus/ostatus.ex index 340228dcf..7aa1ac4ac 100644 --- a/lib/pleroma/web/ostatus/ostatus.ex +++ b/lib/pleroma/web/ostatus/ostatus.ex @@ -44,13 +44,19 @@ defmodule Pleroma.Web.OStatus do [author] = :xmerl_xpath.string('//author[1]', doc) {:ok, actor} = find_make_or_update_user(author) + inReplyTo = string_from_xpath("/entry/thr:in-reply-to[1]/@ref", entry) context = (string_from_xpath("/entry/ostatus:conversation[1]", entry) || "") |> String.trim - context = if String.length(context) > 0 do - context - else - ActivityPub.generate_context_id - end + + context = with %{data: %{"context" => context}} <- Object.get_cached_by_ap_id(inReplyTo) do + context + else _e -> + if String.length(context) > 0 do + context + else + ActivityPub.generate_context_id + end + end to = [ "https://www.w3.org/ns/activitystreams#Public" @@ -74,8 +80,6 @@ defmodule Pleroma.Web.OStatus do "actor" => actor.ap_id } - inReplyTo = string_from_xpath("/entry/thr:in-reply-to[1]/@ref", entry) - object = if inReplyTo do Map.put(object, "inReplyTo", inReplyTo) else |