diff options
author | ThibG <thib@sitedethib.com> | 2020-05-13 23:46:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-13 23:46:09 +0200 |
commit | e1d282023432ff4a88cb795f3a9889704314e448 (patch) | |
tree | 89f9525142d0bf876a4fb6e0117163c0a76bb78a /app/services | |
parent | c6ff4c634caf718adf7280e04909c091d15add1d (diff) | |
parent | d147dd7588502f22ac825780bb1d6e54eb3613e6 (diff) |
Merge pull request #1327 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/activitypub/fetch_remote_account_service.rb | 5 | ||||
-rw-r--r-- | app/services/batched_remove_status_service.rb | 13 | ||||
-rw-r--r-- | app/services/fan_out_on_write_service.rb | 12 | ||||
-rw-r--r-- | app/services/remove_status_service.rb | 12 | ||||
-rw-r--r-- | app/services/resolve_account_service.rb | 3 |
5 files changed, 35 insertions, 10 deletions
diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb index d65c8f951..83fbf6d07 100644 --- a/app/services/activitypub/fetch_remote_account_service.rb +++ b/app/services/activitypub/fetch_remote_account_service.rb @@ -3,6 +3,7 @@ class ActivityPub::FetchRemoteAccountService < BaseService include JsonLdHelper include DomainControlHelper + include WebfingerHelper SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze @@ -35,12 +36,12 @@ class ActivityPub::FetchRemoteAccountService < BaseService private def verified_webfinger? - webfinger = Goldfinger.finger("acct:#{@username}@#{@domain}") + webfinger = webfinger!("acct:#{@username}@#{@domain}") confirmed_username, confirmed_domain = split_acct(webfinger.subject) return webfinger.link('self')&.href == @uri if @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero? - webfinger = Goldfinger.finger("acct:#{confirmed_username}@#{confirmed_domain}") + webfinger = webfinger!("acct:#{confirmed_username}@#{confirmed_domain}") @username, @domain = split_acct(webfinger.subject) self_reference = webfinger.link('self') diff --git a/app/services/batched_remove_status_service.rb b/app/services/batched_remove_status_service.rb index 31237337a..707672ee0 100644 --- a/app/services/batched_remove_status_service.rb +++ b/app/services/batched_remove_status_service.rb @@ -73,11 +73,18 @@ class BatchedRemoveStatusService < BaseService redis.pipelined do redis.publish('timeline:public', payload) - redis.publish('timeline:public:local', payload) if status.local? - + if status.local? + redis.publish('timeline:public:local', payload) + else + redis.publish('timeline:public:remote', payload) + end if status.media_attachments.any? redis.publish('timeline:public:media', payload) - redis.publish('timeline:public:local:media', payload) if status.local? + if status.local? + redis.publish('timeline:public:local:media', payload) + else + redis.publish('timeline:public:remote:media', payload) + end end @tags[status.id].each do |hashtag| diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb index 72f716dc5..dd9c1264d 100644 --- a/app/services/fan_out_on_write_service.rb +++ b/app/services/fan_out_on_write_service.rb @@ -86,14 +86,22 @@ class FanOutOnWriteService < BaseService Rails.logger.debug "Delivering status #{status.id} to public timeline" Redis.current.publish('timeline:public', @payload) - Redis.current.publish('timeline:public:local', @payload) if status.local? + if status.local? + Redis.current.publish('timeline:public:local', @payload) + else + Redis.current.publish('timeline:public:remote', @payload) + end end def deliver_to_media(status) Rails.logger.debug "Delivering status #{status.id} to media timeline" Redis.current.publish('timeline:public:media', @payload) - Redis.current.publish('timeline:public:local:media', @payload) if status.local? + if status.local? + Redis.current.publish('timeline:public:local:media', @payload) + else + Redis.current.publish('timeline:public:remote:media', @payload) + end end def deliver_to_direct_timelines(status) diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb index 1ddce675c..a5aafee21 100644 --- a/app/services/remove_status_service.rb +++ b/app/services/remove_status_service.rb @@ -142,14 +142,22 @@ class RemoveStatusService < BaseService return unless @status.public_visibility? redis.publish('timeline:public', @payload) - redis.publish('timeline:public:local', @payload) if @status.local? + if @status.local? + redis.publish('timeline:public:local', @payload) + else + redis.publish('timeline:public:remote', @payload) + end end def remove_from_media return unless @status.public_visibility? redis.publish('timeline:public:media', @payload) - redis.publish('timeline:public:local:media', @payload) if @status.local? + if @status.local? + redis.publish('timeline:public:local:media', @payload) + else + redis.publish('timeline:public:remote:media', @payload) + end end def remove_from_direct diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb index 1ad9ed407..17ace100c 100644 --- a/app/services/resolve_account_service.rb +++ b/app/services/resolve_account_service.rb @@ -3,6 +3,7 @@ class ResolveAccountService < BaseService include JsonLdHelper include DomainControlHelper + include WebfingerHelper class WebfingerRedirectError < StandardError; end @@ -76,7 +77,7 @@ class ResolveAccountService < BaseService end def process_webfinger!(uri, redirected = false) - @webfinger = Goldfinger.finger("acct:#{uri}") + @webfinger = webfinger!("acct:#{uri}") confirmed_username, confirmed_domain = @webfinger.subject.gsub(/\Aacct:/, '').split('@') if confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero? |