+ 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))
+ |> Enum.filter(&(&1))
+ end
+
+ def get_emoji(entry) do
+ try do
+ :xmerl_xpath.string('//link[@rel="emoji"]', entry)
+ |> Enum.reduce(%{}, fn(emoji, acc) ->
+ Map.put(acc, XML.string_from_xpath("@name", emoji), XML.string_from_xpath("@href", emoji))
+ end)
+ rescue
+ _e -> nil
+ end
+ end
+