aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-05-05 20:15:26 +0200
committerRoger Braun <roger@rogerbraun.net>2017-05-05 20:15:26 +0200
commit7752f103f65f9c596f1571e31bed152382e2eacd (patch)
tree161458f26132a7af58865d7f4d1b1c31accc7c80 /lib
parent00a7183118d90946bf243d0f5488db65f8a6f16f (diff)
downloadpleroma-7752f103f65f9c596f1571e31bed152382e2eacd.tar.gz
Add basic thread fetching.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/ostatus/ostatus.ex11
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"}