diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-06-30 15:54:32 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-06-30 15:54:32 +0200 |
commit | fc7016a88c483701ab8eb4ecf7a3fbc5af3810d9 (patch) | |
tree | fc7f06c470fca9b8c3fd4eb05b532ba66ca12f22 /lib | |
parent | d8bbbeb03abfd0cc26f7bb46ff2788f8ff3c4ed3 (diff) | |
download | pleroma-fc7016a88c483701ab8eb4ecf7a3fbc5af3810d9.tar.gz |
Don't add public recipient to notes that don't contain it.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/ostatus/handlers/note_handler.ex | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/pleroma/web/ostatus/handlers/note_handler.ex b/lib/pleroma/web/ostatus/handlers/note_handler.ex index 82e60676f..e0e4afef6 100644 --- a/lib/pleroma/web/ostatus/handlers/note_handler.ex +++ b/lib/pleroma/web/ostatus/handlers/note_handler.ex @@ -37,14 +37,30 @@ defmodule Pleroma.Web.OStatus.NoteHandler do end end - def get_mentions(entry) do + def get_people_mentions(entry) do :xmerl_xpath.string('//link[@rel="mentioned" and @ostatus:object-type="http://activitystrea.ms/schema/1.0/person"]', entry) |> Enum.map(fn(person) -> XML.string_from_xpath("@href", person) end) end + def get_collection_mentions(entry) do + transmogrify = fn + ("http://activityschema.org/collection/public") -> + "https://www.w3.org/ns/activitystreams#Public" + (group) -> + group + end + + :xmerl_xpath.string('//link[@rel="mentioned" and @ostatus:object-type="http://activitystrea.ms/schema/1.0/collection"]', entry) + |> Enum.map(fn(collection) -> XML.string_from_xpath("@href", collection) |> transmogrify.() end) + end + + def get_mentions(entry) do + get_people_mentions(entry) + ++ get_collection_mentions(entry) + end + def make_to_list(actor, mentions) do [ - "https://www.w3.org/ns/activitystreams#Public", User.ap_followers(actor) ] ++ mentions end |