Browse Source

Twitter API: Add a summary_html field.

The intention here is to allow proper subject copying when it contains
emoji, obviously this will require minor frontend changes, though.
tags/v0.9.9
scarlett 5 years ago
parent
commit
52493467ac
4 changed files with 16 additions and 4 deletions
  1. +4
    -1
      lib/pleroma/web/twitter_api/representers/activity_representer.ex
  2. +4
    -1
      lib/pleroma/web/twitter_api/views/activity_view.ex
  3. +2
    -1
      test/web/twitter_api/representers/activity_representer_test.exs
  4. +6
    -1
      test/web/twitter_api/views/activity_view_test.exs

+ 4
- 1
lib/pleroma/web/twitter_api/representers/activity_representer.ex View File

@@ -181,6 +181,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do

reply_user = reply_parent && User.get_cached_by_ap_id(reply_parent.actor)

summary = HTML.strip_tags(object["summary"])

%{
"id" => activity.id,
"uri" => activity.data["object"]["id"],
@@ -207,7 +209,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
"activity_type" => "post",
"possibly_sensitive" => possibly_sensitive,
"visibility" => Pleroma.Web.MastodonAPI.StatusView.get_visibility(object),
"summary" => HTML.strip_tags(object["summary"]) |> Formatter.emojify(object["emoji"])
"summary" => summary,
"summary_html" => summary |> Formatter.emojify(object["emoji"])
}
end



+ 4
- 1
lib/pleroma/web/twitter_api/views/activity_view.ex View File

@@ -263,6 +263,8 @@ defmodule Pleroma.Web.TwitterAPI.ActivityView do

reply_user = reply_parent && User.get_cached_by_ap_id(reply_parent.actor)

summary = HTML.strip_tags(summary)

%{
"id" => activity.id,
"uri" => activity.data["object"]["id"],
@@ -289,7 +291,8 @@ defmodule Pleroma.Web.TwitterAPI.ActivityView do
"activity_type" => "post",
"possibly_sensitive" => possibly_sensitive,
"visibility" => Pleroma.Web.MastodonAPI.StatusView.get_visibility(object),
"summary" => HTML.strip_tags(summary) |> Formatter.emojify(object["emoji"])
"summary" => summary,
"summary_html" => summary |> Formatter.emojify(object["emoji"])
}
end



+ 2
- 1
test/web/twitter_api/representers/activity_representer_test.exs View File

@@ -163,7 +163,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
"possibly_sensitive" => true,
"uri" => activity.data["object"]["id"],
"visibility" => "direct",
"summary" => "2hu"
"summary" => "2hu",
"summary_html" => "2hu"
}

assert ActivityRepresenter.to_map(activity, %{


+ 6
- 1
test/web/twitter_api/views/activity_view_test.exs View File

@@ -50,10 +50,13 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do

result = ActivityView.render("activity.json", activity: activity)

expected =
expected = ":woollysocks: meow"

expected_html =
"<img height=\"32px\" width=\"32px\" alt=\"woollysocks\" title=\"woollysocks\" src=\"http://localhost:4001/finmoji/128px/woollysocks-128.png\" /> meow"

assert result["summary"] == expected
assert result["summary_html"] == expected_html
end

test "a create activity with a summary containing invalid HTML" do
@@ -68,6 +71,7 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do
expected = "meow"

assert result["summary"] == expected
assert result["summary_html"] == expected
end

test "a create activity with a note" do
@@ -103,6 +107,7 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do
"repeated" => false,
"statusnet_conversation_id" => convo_id,
"summary" => "",
"summary_html" => "",
"statusnet_html" =>
"Hey <span><a data-user=\"#{other_user.id}\" href=\"#{other_user.ap_id}\">@<span>shp</span></a></span>!",
"tags" => [],


Loading…
Cancel
Save