Add ability to filter followed accounts' posts by language (#19095)
This commit is contained in:
parent
882e54c786
commit
50948b46aa
30 changed files with 298 additions and 39 deletions
|
@ -11,6 +11,7 @@ class FollowService < BaseService
|
|||
# @param [Hash] options
|
||||
# @option [Boolean] :reblogs Whether or not to show reblogs, defaults to true
|
||||
# @option [Boolean] :notify Whether to create notifications about new posts, defaults to false
|
||||
# @option [Array<String>] :languages Which languages to allow on the home feed from this account, defaults to all
|
||||
# @option [Boolean] :bypass_locked
|
||||
# @option [Boolean] :bypass_limit Allow following past the total follow number
|
||||
# @option [Boolean] :with_rate_limit
|
||||
|
@ -57,15 +58,15 @@ class FollowService < BaseService
|
|||
end
|
||||
|
||||
def change_follow_options!
|
||||
@source_account.follow!(@target_account, reblogs: @options[:reblogs], notify: @options[:notify])
|
||||
@source_account.follow!(@target_account, **follow_options)
|
||||
end
|
||||
|
||||
def change_follow_request_options!
|
||||
@source_account.request_follow!(@target_account, reblogs: @options[:reblogs], notify: @options[:notify])
|
||||
@source_account.request_follow!(@target_account, **follow_options)
|
||||
end
|
||||
|
||||
def request_follow!
|
||||
follow_request = @source_account.request_follow!(@target_account, reblogs: @options[:reblogs], notify: @options[:notify], rate_limit: @options[:with_rate_limit], bypass_limit: @options[:bypass_limit])
|
||||
follow_request = @source_account.request_follow!(@target_account, **follow_options.merge(rate_limit: @options[:with_rate_limit], bypass_limit: @options[:bypass_limit]))
|
||||
|
||||
if @target_account.local?
|
||||
LocalNotificationWorker.perform_async(@target_account.id, follow_request.id, follow_request.class.name, 'follow_request')
|
||||
|
@ -77,7 +78,7 @@ class FollowService < BaseService
|
|||
end
|
||||
|
||||
def direct_follow!
|
||||
follow = @source_account.follow!(@target_account, reblogs: @options[:reblogs], notify: @options[:notify], rate_limit: @options[:with_rate_limit], bypass_limit: @options[:bypass_limit])
|
||||
follow = @source_account.follow!(@target_account, **follow_options.merge(rate_limit: @options[:with_rate_limit], bypass_limit: @options[:bypass_limit]))
|
||||
|
||||
LocalNotificationWorker.perform_async(@target_account.id, follow.id, follow.class.name, 'follow')
|
||||
MergeWorker.perform_async(@target_account.id, @source_account.id)
|
||||
|
@ -88,4 +89,8 @@ class FollowService < BaseService
|
|||
def build_json(follow_request)
|
||||
Oj.dump(serialize_payload(follow_request, ActivityPub::FollowSerializer))
|
||||
end
|
||||
|
||||
def follow_options
|
||||
@options.slice(:reblogs, :notify, :languages)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue