Class: Abuse::UserTrustScore
- Inherits:
-
Object
- Object
- Abuse::UserTrustScore
- Defined in:
- app/models/abuse/user_trust_score.rb
Constant Summary collapse
- MAX_EVENTS =
100
- SPAMCHECK_HAM_THRESHOLD =
0.5
Instance Method Summary collapse
- #arkose_custom_score ⇒ Object
- #arkose_global_score ⇒ Object
-
#initialize(user) ⇒ UserTrustScore
constructor
A new instance of UserTrustScore.
- #remove_old_scores(source) ⇒ Object
- #spam_score ⇒ Object
- #spammer? ⇒ Boolean
- #telesign_score ⇒ Object
- #trust_scores_for_source(source) ⇒ Object
Constructor Details
#initialize(user) ⇒ UserTrustScore
Returns a new instance of UserTrustScore.
8 9 10 |
# File 'app/models/abuse/user_trust_score.rb', line 8 def initialize(user) @user = user end |
Instance Method Details
#arkose_custom_score ⇒ Object
28 29 30 |
# File 'app/models/abuse/user_trust_score.rb', line 28 def arkose_custom_score user_scores.arkose_custom_score.order_created_at_desc.first&.score || 0.0 end |
#arkose_global_score ⇒ Object
24 25 26 |
# File 'app/models/abuse/user_trust_score.rb', line 24 def arkose_global_score user_scores.arkose_global_score.order_created_at_desc.first&.score || 0.0 end |
#remove_old_scores(source) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'app/models/abuse/user_trust_score.rb', line 36 def remove_old_scores(source) count = trust_scores_for_source(source).count return unless count > MAX_EVENTS Abuse::TrustScore.delete( trust_scores_for_source(source) .order_created_at_asc .limit(count - MAX_EVENTS) ) end |
#spam_score ⇒ Object
16 17 18 |
# File 'app/models/abuse/user_trust_score.rb', line 16 def spam_score user_scores.spamcheck.average(:score) || 0.0 end |
#spammer? ⇒ Boolean
12 13 14 |
# File 'app/models/abuse/user_trust_score.rb', line 12 def spammer? spam_score > SPAMCHECK_HAM_THRESHOLD end |
#telesign_score ⇒ Object
20 21 22 |
# File 'app/models/abuse/user_trust_score.rb', line 20 def telesign_score user_scores.telesign.order_created_at_desc.first&.score || 0.0 end |
#trust_scores_for_source(source) ⇒ Object
32 33 34 |
# File 'app/models/abuse/user_trust_score.rb', line 32 def trust_scores_for_source(source) user_scores.where(source: source) end |