aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-08-24 12:54:01 +0200
committerRoger Braun <roger@rogerbraun.net>2017-08-24 12:54:01 +0200
commit1a001588e80e1ff7088472e3faaf754617d63973 (patch)
tree1435e27c5bd9abde6c3811fefb7dbfb19af27652
parente477608b7e87cc9adfaab8d91fb614ce1c0b8505 (diff)
downloadpleroma-1a001588e80e1ff7088472e3faaf754617d63973.tar.gz
Don't break on empty mentions.
-rw-r--r--lib/pleroma/web/ostatus/handlers/note_handler.ex5
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api.ex6
-rw-r--r--test/web/ostatus/ostatus_test.exs7
3 files changed, 15 insertions, 3 deletions
diff --git a/lib/pleroma/web/ostatus/handlers/note_handler.ex b/lib/pleroma/web/ostatus/handlers/note_handler.ex
index e67f67b37..f9aa463a0 100644
--- a/lib/pleroma/web/ostatus/handlers/note_handler.ex
+++ b/lib/pleroma/web/ostatus/handlers/note_handler.ex
@@ -55,8 +55,9 @@ defmodule Pleroma.Web.OStatus.NoteHandler do
end
def get_mentions(entry) do
- get_people_mentions(entry)
- ++ get_collection_mentions(entry)
+ (get_people_mentions(entry)
+ ++ get_collection_mentions(entry))
+ |> Enum.filter(&(&1))
end
def make_to_list(actor, mentions) do
diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex
index dc66e27ad..de39834ca 100644
--- a/lib/pleroma/web/twitter_api/twitter_api.ex
+++ b/lib/pleroma/web/twitter_api/twitter_api.ex
@@ -270,7 +270,11 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
user = User.get_cached_by_ap_id(actor)
# mentioned_users = Repo.all(from user in User, where: user.ap_id in ^activity.data["to"])
mentioned_users = Enum.map(activity.data["to"] || [], fn (ap_id) ->
- User.get_cached_by_ap_id(ap_id)
+ if ap_id do
+ User.get_cached_by_ap_id(ap_id)
+ else
+ nil
+ end
end)
|> Enum.filter(&(&1))
diff --git a/test/web/ostatus/ostatus_test.exs b/test/web/ostatus/ostatus_test.exs
index 44d687d8e..8dd3c3b54 100644
--- a/test/web/ostatus/ostatus_test.exs
+++ b/test/web/ostatus/ostatus_test.exs
@@ -346,4 +346,11 @@ defmodule Pleroma.Web.OStatusTest do
assert {:ok, %User{}} = OStatus.insert_or_update_user(data)
end
+
+ test "it doesn't add nil in the do field" do
+ incoming = File.read!("test/fixtures/nil_mention_entry.xml")
+ {:ok, [activity]} = OStatus.handle_incoming(incoming)
+
+ assert activity.data["to"] == ["http://localhost:4001/users/atarifrosch@social.stopwatchingus-heidelberg.de/followers", "https://www.w3.org/ns/activitystreams#Public"]
+ end
end