闭社主体 forked from https://github.com/tootsuite/mastodon
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
526 B

  1. # frozen_string_literal: true
  2. class MuteService < BaseService
  3. def call(account, target_account)
  4. return if account.id == target_account.id
  5. clear_home_timeline(account, target_account)
  6. account.mute!(target_account)
  7. end
  8. private
  9. def clear_home_timeline(account, target_account)
  10. home_key = FeedManager.instance.key(:home, account.id)
  11. target_account.statuses.select('id').reorder(nil).find_each do |status|
  12. redis.zrem(home_key, status.id)
  13. end
  14. end
  15. def redis
  16. Redis.current
  17. end
  18. end