diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-10-31 17:30:46 +0100 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-10-31 17:30:46 +0100 |
commit | 4cbf17dac6c9501e9fc711d04540da9afbcad717 (patch) | |
tree | f95148cb4f2e1857943a1c0da16cc09f5da0351d /lib | |
parent | 4dcbb64f19723334a9ef66b4ce71856d30e32796 (diff) | |
download | pleroma-4cbf17dac6c9501e9fc711d04540da9afbcad717.tar.gz |
Save cws in the activitypub data.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/common_api/utils.ex | 3 | ||||
-rw-r--r-- | lib/pleroma/web/ostatus/handlers/note_handler.ex | 3 | ||||
-rw-r--r-- | lib/pleroma/web/ostatus/ostatus.ex | 14 |
3 files changed, 13 insertions, 7 deletions
diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index 06fcc9e8b..83a656011 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -94,11 +94,12 @@ defmodule Pleroma.Web.CommonAPI.Utils do end) end - def make_note_data(actor, to, context, content_html, attachments, inReplyTo, tags) do + def make_note_data(actor, to, context, content_html, attachments, inReplyTo, tags, cw \\ nil) do object = %{ "type" => "Note", "to" => to, "content" => content_html, + "summary" => cw, "context" => context, "attachment" => attachments, "actor" => actor, diff --git a/lib/pleroma/web/ostatus/handlers/note_handler.ex b/lib/pleroma/web/ostatus/handlers/note_handler.ex index b151c118a..8747dbb67 100644 --- a/lib/pleroma/web/ostatus/handlers/note_handler.ex +++ b/lib/pleroma/web/ostatus/handlers/note_handler.ex @@ -94,6 +94,7 @@ defmodule Pleroma.Web.OStatus.NoteHandler do [author] <- :xmerl_xpath.string('//author[1]', doc), {:ok, actor} <- OStatus.find_make_or_update_user(author), content_html <- OStatus.get_content(entry), + cw <- OStatus.get_cw(entry), inReplyTo <- XML.string_from_xpath("//thr:in-reply-to[1]/@ref", entry), inReplyToActivity <- fetch_replied_to_activity(entry, inReplyTo), inReplyTo <- (inReplyToActivity && inReplyToActivity.data["object"]["id"]) || inReplyTo, @@ -103,7 +104,7 @@ defmodule Pleroma.Web.OStatus.NoteHandler do mentions <- get_mentions(entry), to <- make_to_list(actor, mentions), date <- XML.string_from_xpath("//published", entry), - note <- CommonAPI.Utils.make_note_data(actor.ap_id, to, context, content_html, attachments, inReplyToActivity, []), + note <- CommonAPI.Utils.make_note_data(actor.ap_id, to, context, content_html, attachments, inReplyToActivity, [], cw), note <- note |> Map.put("id", id) |> Map.put("tag", tags), note <- note |> Map.put("published", date), note <- note |> Map.put("emoji", get_emoji(entry)), diff --git a/lib/pleroma/web/ostatus/ostatus.ex b/lib/pleroma/web/ostatus/ostatus.ex index bc975f82d..1e8b71357 100644 --- a/lib/pleroma/web/ostatus/ostatus.ex +++ b/lib/pleroma/web/ostatus/ostatus.ex @@ -150,16 +150,20 @@ defmodule Pleroma.Web.OStatus do end @doc """ - Gets the content from a an entry. Will add the cw text to the body for cw'd - Mastodon notes. + Gets the content from a an entry. """ def get_content(entry) do - base_content = string_from_xpath("//content", entry) + string_from_xpath("//content", entry) + end + @doc """ + Get the cw that mastodon uses. + """ + def get_cw(entry) do with scope when not is_nil(scope) <- string_from_xpath("//mastodon:scope", entry), cw when not is_nil(cw) <- string_from_xpath("/*/summary", entry) do - "<span class='mastodon-cw'>#{cw}</span><br>#{base_content}" - else _e -> base_content + cw + else _e -> nil end end |