aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2019-03-07 12:13:48 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2019-03-07 12:13:48 +0000
commite53a9fd15e6749c87193f829f4d33fea1406a21f (patch)
tree77c7188a12dadb356c37661b5d7ed8ef66d30be2
parent992145e64ce40ca8eb85367c78df1696ad0e414c (diff)
downloadpleroma-e53a9fd15e6749c87193f829f4d33fea1406a21f.tar.gz
MRF: anti followbot: gracefully handle accounts without a display name
-rw-r--r--lib/pleroma/web/activity_pub/mrf/anti_followbot_policy.ex12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/pleroma/web/activity_pub/mrf/anti_followbot_policy.ex b/lib/pleroma/web/activity_pub/mrf/anti_followbot_policy.ex
index 7c6ad582a..34665a3a6 100644
--- a/lib/pleroma/web/activity_pub/mrf/anti_followbot_policy.ex
+++ b/lib/pleroma/web/activity_pub/mrf/anti_followbot_policy.ex
@@ -23,15 +23,21 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicy do
defp score_displayname(_), do: 0.0
defp determine_if_followbot(%User{nickname: nickname, name: displayname}) do
+ # nickname will always be a binary string because it's generated by Pleroma.
nick_score =
nickname
|> String.downcase()
|> score_nickname()
+ # displayname will either be a binary string or nil, if a displayname isn't set.
name_score =
- displayname
- |> String.downcase()
- |> score_displayname()
+ if is_binary(displayname) do
+ displayname
+ |> String.downcase()
+ |> score_displayname()
+ else
+ 0.0
+ end
nick_score + name_score
end