diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-05-05 20:15:26 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-05-05 20:15:26 +0200 |
commit | 7752f103f65f9c596f1571e31bed152382e2eacd (patch) | |
tree | 161458f26132a7af58865d7f4d1b1c31accc7c80 /lib | |
parent | 00a7183118d90946bf243d0f5488db65f8a6f16f (diff) | |
download | pleroma-7752f103f65f9c596f1571e31bed152382e2eacd.tar.gz |
Add basic thread fetching.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/ostatus/ostatus.ex | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus.ex b/lib/pleroma/web/ostatus/ostatus.ex index 5a44b8661..2a107b6a6 100644 --- a/lib/pleroma/web/ostatus/ostatus.ex +++ b/lib/pleroma/web/ostatus/ostatus.ex @@ -121,6 +121,13 @@ defmodule Pleroma.Web.OStatus do {:ok, actor} = find_make_or_update_user(author) inReplyTo = string_from_xpath("//thr:in-reply-to[1]/@ref", entry) + if !Object.get_cached_by_ap_id(inReplyTo) do + inReplyToHref = string_from_xpath("//thr:in-reply-to[1]/@href", entry) + if inReplyToHref do + Task.start(fn -> fetch_activity_from_html_url(inReplyToHref) end) + end + end + context = (string_from_xpath("//ostatus:conversation[1]", entry) || "") |> String.trim attachments = get_attachments(entry) @@ -248,6 +255,7 @@ defmodule Pleroma.Web.OStatus do # It's a hack anyway. Maybe revisit this in the future @mastodon_regex ~r/<link href='(.*)' rel='alternate' type='application\/atom\+xml'>/ @gs_regex ~r/<link title=.* href="(.*)" type="application\/atom\+xml" rel="alternate">/ + @gs_classic_regex ~r/<link rel="alternate" href="(.*)" type="application\/atom\+xml" title=.*>/ def get_atom_url(body) do cond do Regex.match?(@mastodon_regex, body) -> @@ -256,6 +264,9 @@ defmodule Pleroma.Web.OStatus do Regex.match?(@gs_regex, body) -> [[_, match]] = Regex.scan(@gs_regex, body) {:ok, match} + Regex.match?(@gs_classic_regex, body) -> + [[_, match]] = Regex.scan(@gs_classic_regex, body) + {:ok, match} true -> Logger.debug(fn -> "Couldn't find atom link in #{inspect(body)}" end) {:error, "Couldn't find the atom link"} |