Bladeren bron

don't send spammy mentions

cybrespace
nightpool 11 maanden geleden
bovenliggende
commit
40bd7a4282
2 gewijzigde bestanden met toevoegingen van 14 en 1 verwijderingen
  1. +6
    -1
      app/lib/activitypub/activity.rb
  2. +8
    -0
      app/models/status.rb

+ 6
- 1
app/lib/activitypub/activity.rb Bestand weergeven

@@ -90,7 +90,7 @@ class ActivityPub::Activity
crawl_links(status)

notify_about_reblog(status) if reblog_of_local_account?(status)
notify_about_mentions(status)
notify_about_mentions(status) unless spammy_mentions?(status)

# Only continue if the status is supposed to have arrived in real-time.
# Note that if @options[:override_timestamps] isn't set, the status
@@ -105,6 +105,11 @@ class ActivityPub::Activity
status.reblog? && status.reblog.account.local?
end

def spammy_mentions?(status)
status.has_non_mention_links? &&
@account.followers.local.count == 0
end

def notify_about_reblog(status)
NotifyService.new.call(status.reblog.account, status)
end


+ 8
- 0
app/models/status.rb Bestand weergeven

@@ -431,6 +431,14 @@ class Status < ApplicationRecord
end
end

def has_non_mention_links?
if local?
text.match? %r{https?://\w}
else
Nokogiri::HTML.fragment(text).css('a:not(.mention)').present?
end
end

private

def update_status_stat!(attrs)


Laden…
Annuleren
Opslaan