sources: fix sources sometimes choosing wrong strategy (fix #3968)

Fix sources choosing the wrong strategy when the referer belongs to a
different site (for example, when uploading a twitter post with a pixiv
referer).

* Fix `match?` to only consider the main url, not the referer.

* Change `match?` to match against a list of domains given by the `domains` method.

* Change `match?` to an instance method.
This commit is contained in:
evazion
2018-11-04 13:00:17 -06:00
parent 4219163042
commit 5cf6a43918
13 changed files with 58 additions and 37 deletions

View File

@@ -21,10 +21,6 @@ module Sources
FANBOX_IMAGE = %r!(?:\Ahttps?://fanbox\.pixiv\.net/images/post/(\d+))!
FANBOX_PAGE = %r!(?:\Ahttps?://www\.pixiv\.net/fanbox/creator/\d+/post/(\d+))!
def self.match?(*urls)
urls.compact.any? { |x| x.match?(/#{WEB}|#{IMG}|#{I12}|#{TOUCH}|#{PXIMG}|#{FANBOX_IMAGE}|#{FANBOX_ACCOUNT}/i) }
end
def self.to_dtext(text)
if text.nil?
return nil
@@ -47,6 +43,10 @@ module Sources
DText.from_html(text)
end
def domains
["pixiv.net", "pximg.net"]
end
def site_name
"Pixiv"
end