Merge branch 'instance_only_statuses' of https://github.com/masto-donte-com-br/mastodon into hometown-dev
This commit is contained in:
@ -5,7 +5,7 @@ class ActivityPub::Activity
|
||||
include Redisable
|
||||
|
||||
SUPPORTED_TYPES = %w(Note Question Article).freeze
|
||||
CONVERTED_TYPES = %w(Image Audio Video Page).freeze
|
||||
CONVERTED_TYPES = %w(Image Audio Video Page Event).freeze
|
||||
|
||||
def initialize(json, account, **options)
|
||||
@json = json
|
||||
@ -21,7 +21,7 @@ class ActivityPub::Activity
|
||||
class << self
|
||||
def factory(json, account, **options)
|
||||
@json = json
|
||||
klass&.new(json, account, options)
|
||||
klass&.new(json, account, **options)
|
||||
end
|
||||
|
||||
private
|
||||
@ -89,7 +89,7 @@ class ActivityPub::Activity
|
||||
def distribute(status)
|
||||
crawl_links(status)
|
||||
|
||||
notify_about_reblog(status) if reblog_of_local_account?(status)
|
||||
notify_about_reblog(status) if reblog_of_local_account?(status) && !reblog_by_following_group_account?(status)
|
||||
notify_about_mentions(status)
|
||||
|
||||
# Only continue if the status is supposed to have arrived in real-time.
|
||||
@ -105,6 +105,10 @@ class ActivityPub::Activity
|
||||
status.reblog? && status.reblog.account.local?
|
||||
end
|
||||
|
||||
def reblog_by_following_group_account?(status)
|
||||
status.reblog? && status.account.group? && status.reblog.account.following?(status.account)
|
||||
end
|
||||
|
||||
def notify_about_reblog(status)
|
||||
NotifyService.new.call(status.reblog.account, status)
|
||||
end
|
||||
@ -153,6 +157,14 @@ class ActivityPub::Activity
|
||||
fetch_remote_original_status
|
||||
end
|
||||
|
||||
def follow_request_from_object
|
||||
@follow_request ||= FollowRequest.find_by(target_account: @account, uri: object_uri) unless object_uri.nil?
|
||||
end
|
||||
|
||||
def follow_from_object
|
||||
@follow ||= ::Follow.find_by(target_account: @account, uri: object_uri) unless object_uri.nil?
|
||||
end
|
||||
|
||||
def fetch_remote_original_status
|
||||
if object_uri.start_with?('http')
|
||||
return if ActivityPub::TagManager.instance.local_uri?(object_uri)
|
||||
|
Reference in New Issue
Block a user