Add href to in-reply-to.

THis should enable fetching from pleroma posts.
This commit is contained in:
Roger Braun 2017-08-01 17:35:19 +02:00
parent f226f46a09
commit 25c733f402
2 changed files with 14 additions and 3 deletions

View file

@ -1,10 +1,18 @@
defmodule Pleroma.Web.OStatus.ActivityRepresenter do defmodule Pleroma.Web.OStatus.ActivityRepresenter do
alias Pleroma.{Activity, User} alias Pleroma.{Activity, User, Object}
alias Pleroma.Web.OStatus.UserRepresenter alias Pleroma.Web.OStatus.UserRepresenter
require Logger require Logger
defp get_href(id) do
with %Object{data: %{ "external_url" => external_url } }<- Object.get_cached_by_ap_id(id) do
external_url
else
_e -> id
end
end
defp get_in_reply_to(%{"object" => %{"inReplyTo" => in_reply_to}}) do defp get_in_reply_to(%{"object" => %{"inReplyTo" => in_reply_to}}) do
[{:"thr:in-reply-to", [ref: to_charlist(in_reply_to)], []}] [{:"thr:in-reply-to", [ref: to_charlist(in_reply_to), href: to_charlist(get_href(in_reply_to))], []}]
end end
defp get_in_reply_to(_), do: [] defp get_in_reply_to(_), do: []

View file

@ -58,6 +58,9 @@ test "a reply note" do
data = %{answer.data | "object" => object} data = %{answer.data | "object" => object}
answer = %{answer | data: data} answer = %{answer | data: data}
note_object = Object.get_by_ap_id(note.data["object"]["id"])
Repo.update!(Object.change(note_object, %{ data: Map.put(note_object.data, "external_url", "someurl") }))
user = User.get_cached_by_ap_id(answer.data["actor"]) user = User.get_cached_by_ap_id(answer.data["actor"])
expected = """ expected = """
@ -73,7 +76,7 @@ test "a reply note" do
<link type="application/atom+xml" href="#{answer.data["object"]["id"]}" rel="self" /> <link type="application/atom+xml" href="#{answer.data["object"]["id"]}" rel="self" />
<link type="text/html" href="#{answer.data["object"]["id"]}" rel="alternate" /> <link type="text/html" href="#{answer.data["object"]["id"]}" rel="alternate" />
<category term="2hu"/> <category term="2hu"/>
<thr:in-reply-to ref="#{note.data["object"]["id"]}" /> <thr:in-reply-to ref="#{note.data["object"]["id"]}" href="someurl" />
<link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/> <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
""" """