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"}