Don't break on empty mentions.
This commit is contained in:
parent
e477608b7e
commit
1a001588e8
|
@ -55,8 +55,9 @@ def get_collection_mentions(entry) do
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_mentions(entry) do
|
def get_mentions(entry) do
|
||||||
get_people_mentions(entry)
|
(get_people_mentions(entry)
|
||||||
++ get_collection_mentions(entry)
|
++ get_collection_mentions(entry))
|
||||||
|
|> Enum.filter(&(&1))
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_to_list(actor, mentions) do
|
def make_to_list(actor, mentions) do
|
||||||
|
|
|
@ -270,7 +270,11 @@ defp activity_to_status(activity, opts) do
|
||||||
user = User.get_cached_by_ap_id(actor)
|
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 = Repo.all(from user in User, where: user.ap_id in ^activity.data["to"])
|
||||||
mentioned_users = Enum.map(activity.data["to"] || [], fn (ap_id) ->
|
mentioned_users = Enum.map(activity.data["to"] || [], fn (ap_id) ->
|
||||||
|
if ap_id do
|
||||||
User.get_cached_by_ap_id(ap_id)
|
User.get_cached_by_ap_id(ap_id)
|
||||||
|
else
|
||||||
|
nil
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|> Enum.filter(&(&1))
|
|> Enum.filter(&(&1))
|
||||||
|
|
||||||
|
|
|
@ -346,4 +346,11 @@ test "insert or update a user from given data" do
|
||||||
|
|
||||||
assert {:ok, %User{}} = OStatus.insert_or_update_user(data)
|
assert {:ok, %User{}} = OStatus.insert_or_update_user(data)
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Reference in New Issue