sources: factor out Source::URL::TwitPic.
This commit is contained in:
@@ -22,6 +22,7 @@ module Sources
|
||||
Strategies::Lofter,
|
||||
Strategies::Foundation,
|
||||
Strategies::Plurk,
|
||||
Strategies::TwitPic,
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
@@ -17,11 +17,6 @@ module Sources
|
||||
|
||||
def normalize_for_source
|
||||
case url
|
||||
when %r{\Ahttps?://(?:d3j5vwomefv46c|dn3pm25xmtlyu)\.cloudfront\.net/photos/large/(\d+)\.}i
|
||||
base_10_id = $1.to_i
|
||||
base_36_id = base_10_id.to_s(36)
|
||||
"https://twitpic.com/#{base_36_id}"
|
||||
|
||||
when %r{\Ahttp://www\.karabako\.net/images(?:ub)?/karabako_(\d+)(?:_\d+)?\.}i
|
||||
"http://www.karabako.net/post/view/#{$1}"
|
||||
|
||||
|
||||
18
app/logical/sources/strategies/twit_pic.rb
Normal file
18
app/logical/sources/strategies/twit_pic.rb
Normal file
@@ -0,0 +1,18 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# @see Source::URL::TwitPic
|
||||
module Sources::Strategies
|
||||
class TwitPic < Base
|
||||
def match?
|
||||
parsed_url&.site_name == "TwitPic"
|
||||
end
|
||||
|
||||
def site_name
|
||||
parsed_url.site_name
|
||||
end
|
||||
|
||||
def normalize_for_source
|
||||
parsed_url.page_url || url
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -23,12 +23,12 @@ module Sources::Strategies
|
||||
Danbooru.config.twitter_api_key.present? && Danbooru.config.twitter_api_secret.present?
|
||||
end
|
||||
|
||||
def domains
|
||||
["twitter.com", "twimg.com"]
|
||||
def match?
|
||||
parsed_url&.site_name == "Twitter"
|
||||
end
|
||||
|
||||
def site_name
|
||||
"Twitter"
|
||||
parsed_url.site_name
|
||||
end
|
||||
|
||||
def image_urls
|
||||
@@ -118,18 +118,6 @@ module Sources::Strategies
|
||||
"https://twitter.com/#{tag_name_from_url}/status/#{status_id}"
|
||||
elsif status_id.present?
|
||||
"https://twitter.com/i/web/status/#{status_id}"
|
||||
elsif url =~ %r{\Ahttps?://(?:o|image-proxy-origin)\.twimg\.com/\d/proxy\.jpg\?t=(\w+)&}i
|
||||
str = Base64.decode64($1)
|
||||
source = URI.extract(str, %w[http https])
|
||||
if source.any?
|
||||
source = source[0]
|
||||
if source =~ %r{^https?://twitpic.com/show/large/[a-z0-9]+}i
|
||||
source.gsub!(%r{show/large/}, "")
|
||||
index = source.rindex(".")
|
||||
source = source[0..index - 1]
|
||||
end
|
||||
source
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user