diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-05-18 16:24:41 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-05-18 16:24:41 +0200 |
commit | a92a9dce94d2a2502750a4a258560283c21e2777 (patch) | |
tree | 745188ea9a74dad7aa92c53155fca4812e403029 /lib | |
parent | beb7b0ef07f880b6eecc01d04980b38ba8521a81 (diff) | |
download | pleroma-a92a9dce94d2a2502750a4a258560283c21e2777.tar.gz |
Add invisible tags to TwAPI output.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/twitter_api/representers/activity_representer.ex | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/pleroma/web/twitter_api/representers/activity_representer.ex b/lib/pleroma/web/twitter_api/representers/activity_representer.ex index 7266a0b2d..0303739f5 100644 --- a/lib/pleroma/web/twitter_api/representers/activity_representer.ex +++ b/lib/pleroma/web/twitter_api/representers/activity_representer.ex @@ -1,7 +1,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ObjectRepresenter} - alias Pleroma.{Activity, User} + alias Pleroma.{Activity, User, Formatter} alias Calendar.Strftime alias Pleroma.Web.TwitterAPI.TwitterAPI @@ -72,6 +72,18 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do } end + def content_with_tags(content, tags) do + tags = tags || [] + text_content = HtmlSanitizeEx.strip_tags(content) + found_tags = Formatter.parse_tags(text_content) + |> Enum.map(fn ({_, tag}) -> tag end) + + missing_tags = tags -- found_tags + |> Enum.map(&"##{&1}") + + Enum.join([content | missing_tags], "<br>\n") + end + def to_map(%Activity{data: %{"object" => %{"content" => content} = object}} = activity, %{user: user} = opts) do created_at = object["published"] |> date_to_asctime like_count = object["like_count"] || 0 @@ -88,6 +100,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do conversation_id = conversation_id(activity) + content = content_with_tags(content, object["tag"]) + %{ "id" => activity.id, "user" => UserRepresenter.to_map(user, opts), |