sources: remove canonical_url method.
Refactor source strategies to remove the `canonical_url` method. `canonical_url` returned the URL that should be used as the source of the post after upload. Now we simply use `Source::URL#page_url` to determine the source after upload. If the source is an image URL that is convertible to a page URL, then the image URL is used as the source. If the source is an image URL that is not convertible to a page URL, then the page URL is used as the source. This simplifies source strategies so that all they have to care about is implementing the `Source::URL#page_url` and `Sources::Strategies#page_url` methods, and the preferred source will be chosen for posts automatically.
This commit is contained in:
@@ -65,6 +65,20 @@ class UploadMediaAsset < ApplicationRecord
|
||||
source_url.starts_with?("file://")
|
||||
end
|
||||
|
||||
# The source of the post after upload.
|
||||
def canonical_url
|
||||
return source_url if file_upload?
|
||||
|
||||
# If the image URL is convertible to a page URL, or the page URL couldn't
|
||||
# be found, then use the image URL as the source of the post. Otherwise,
|
||||
# use the page URL.
|
||||
if Source::URL.page_url(source_url).present? || page_url.blank?
|
||||
source_url
|
||||
else
|
||||
page_url
|
||||
end
|
||||
end
|
||||
|
||||
def source_strategy
|
||||
return nil if source_url.blank?
|
||||
Sources::Strategies.find(source_url, page_url)
|
||||
|
||||
Reference in New Issue
Block a user