diff options
author | ThibG <thib@sitedethib.com> | 2018-10-28 20:36:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-28 20:36:55 +0100 |
commit | 7f22ed0fc912ffbd94e0df4e0d40750dae542b97 (patch) | |
tree | 770029d865518400da31e9cdb55fc9c584e5a90b /app/services | |
parent | ee1f1a2ec97604ed364a5944bd300be0771ba7d7 (diff) | |
parent | b00f60f1d3d5415b5fd536191a7ee183ae910d03 (diff) |
Merge pull request #794 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 | 3 | ||||
-rw-r--r-- | app/services/fetch_link_card_service.rb | 13 | ||||
-rw-r--r-- | app/services/verify_link_service.rb | 2 |
3 files changed, 14 insertions, 4 deletions
diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb index 1ec9ee5dd..8430d12d5 100644 --- a/app/services/activitypub/fetch_remote_account_service.rb +++ b/app/services/activitypub/fetch_remote_account_service.rb @@ -5,9 +5,10 @@ class ActivityPub::FetchRemoteAccountService < BaseService SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze - # Should be called when uri has already been checked for locality # Does a WebFinger roundtrip on each call def call(uri, id: true, prefetched_body: nil, break_on_redirect: false) + return ActivityPub::TagManager.instance.uri_to_resource(uri, Account) if ActivityPub::TagManager.instance.local_uri?(uri) + @json = if prefetched_body.nil? fetch_resource(uri, id) else diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index 4169c685b..462e5ee13 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -17,7 +17,8 @@ class FetchLinkCardService < BaseService return if @url.nil? || @status.preview_cards.any? - @url = @url.to_s + @mentions = status.mentions + @url = @url.to_s RedisLock.acquire(lock_options) do |lock| if lock.acquired? @@ -62,6 +63,7 @@ class FetchLinkCardService < BaseService def attach_card @status.preview_cards << @card + Rails.cache.delete(@status) end def parse_urls @@ -81,9 +83,16 @@ class FetchLinkCardService < BaseService uri.host.blank? || TagManager.instance.local_url?(uri.to_s) || !%w(http https).include?(uri.scheme) end + def mention_link?(a) + return false if @mentions.nil? + @mentions.any? do |mention| + a['href'] == TagManager.instance.url_for(mention.target) + end + end + def skip_link?(a) # Avoid links for hashtags and mentions (microformats) - a['rel']&.include?('tag') || a['class']&.include?('u-url') + a['rel']&.include?('tag') || a['class']&.include?('u-url') || mention_link?(a) end def attempt_oembed diff --git a/app/services/verify_link_service.rb b/app/services/verify_link_service.rb index 3453b54c5..9f56249c7 100644 --- a/app/services/verify_link_service.rb +++ b/app/services/verify_link_service.rb @@ -25,7 +25,7 @@ class VerifyLinkService < BaseService end def link_back_present? - return false if @body.empty? + return false if @body.blank? links = Nokogiri::HTML(@body).xpath('//a[contains(concat(" ", normalize-space(@rel), " "), " me ")]|//link[contains(concat(" ", normalize-space(@rel), " "), " me ")]') |