diff --git a/lib/pleroma/web/ostatus/activity_representer.ex b/lib/pleroma/web/ostatus/activity_representer.ex
index a129fac23..842e44ee4 100644
--- a/lib/pleroma/web/ostatus/activity_representer.ex
+++ b/lib/pleroma/web/ostatus/activity_representer.ex
@@ -1,10 +1,18 @@
defmodule Pleroma.Web.OStatus.ActivityRepresenter do
- alias Pleroma.{Activity, User}
+ alias Pleroma.{Activity, User, Object}
alias Pleroma.Web.OStatus.UserRepresenter
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
- [{:"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
defp get_in_reply_to(_), do: []
diff --git a/test/web/ostatus/activity_representer_test.exs b/test/web/ostatus/activity_representer_test.exs
index 171a8bae7..0129e3758 100644
--- a/test/web/ostatus/activity_representer_test.exs
+++ b/test/web/ostatus/activity_representer_test.exs
@@ -58,6 +58,9 @@ test "a reply note" do
data = %{answer.data | "object" => object}
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"])
expected = """
@@ -73,7 +76,7 @@ test "a reply note" do
-
+
"""