From 7752f103f65f9c596f1571e31bed152382e2eacd Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Fri, 5 May 2017 20:15:26 +0200 Subject: [PATCH] Add basic thread fetching. --- lib/pleroma/web/ostatus/ostatus.ex | 11 +++++++++++ 1 file changed, 11 insertions(+) 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// @gs_regex ~r// + @gs_classic_regex ~r// 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"}