projects
/
akkoma
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
00a7183
)
Add basic thread fetching.
author
Roger Braun
<roger@rogerbraun.net>
Fri, 5 May 2017 18:15:26 +0000
(20:15 +0200)
committer
Roger Braun
<roger@rogerbraun.net>
Fri, 5 May 2017 18:15:26 +0000
(20:15 +0200)
lib/pleroma/web/ostatus/ostatus.ex
patch
|
blob
|
history
diff --git
a/lib/pleroma/web/ostatus/ostatus.ex
b/lib/pleroma/web/ostatus/ostatus.ex
index 5a44b86610301dcea139e5c30f6f5994adc1105d..2a107b6a652febb0d499c977c2a0257f839a3c56 100644
(file)
--- 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)
{: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)
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">/
# 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) ->
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_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"}
true ->
Logger.debug(fn -> "Couldn't find atom link in #{inspect(body)}" end)
{:error, "Couldn't find the atom link"}