potential fix for #2404

This commit is contained in:
r888888888
2015-06-10 17:28:28 -07:00
parent 76dd4bac22
commit fd74f860ee
12 changed files with 34 additions and 36 deletions

View File

@@ -3,22 +3,22 @@
module Sources
class Site
attr_reader :url, :strategy
delegate :get, :get_size, :referer_url, :site_name, :artist_name,
delegate :get, :get_size, :site_name, :artist_name,
:profile_url, :image_url, :tags, :artist_record, :unique_id,
:page_count, :file_url, :ugoira_frame_data, :image_urls,
:has_artist_commentary?, :artist_commentary_title,
:artist_commentary_desc, :to => :strategy
:artist_commentary_desc, :referer_url, :to => :strategy
def self.strategies
[Strategies::Pixiv, Strategies::NicoSeiga, Strategies::DeviantArt, Strategies::Nijie, Strategies::Twitter]
end
def initialize(url)
def initialize(url, options = {})
@url = url
Site.strategies.each do |strategy|
if strategy.url_match?(url)
@strategy = strategy.new(url)
@strategy = strategy.new(url, options[:referer_url])
break
end
end

View File

@@ -1,7 +1,7 @@
module Sources
module Strategies
class Base
attr_reader :url
attr_reader :url, :referer_url
attr_reader :artist_name, :profile_url, :image_url, :tags, :page_count
attr_reader :artist_commentary_title, :artist_commentary_desc
@@ -9,8 +9,9 @@ module Sources
false
end
def initialize(url)
def initialize(url, referer_url)
@url = url
@referer_url = referer_url
@page_count = 1
end
@@ -69,10 +70,6 @@ module Sources
end
end
def referer_url(template)
raise NotImplementedError
end
def image_urls
[image_url]
end

View File

@@ -5,11 +5,11 @@ module Sources
url =~ /^https?:\/\/(?:.+?\.)?deviantart\.(?:com|net)/
end
def referer_url(template)
if template.params[:ref] =~ /deviantart\.com\/art\// && template.params[:url] =~ /https?:\/\/(?:fc|th|pre|orig|img)\d{2}\.deviantart\.net\//
template.params[:ref]
def referer_url
if @referer_url =~ /deviantart\.com\/art\// && @url =~ /https?:\/\/(?:fc|th|pre|orig|img)\d{2}\.deviantart\.net\//
@referer_url
else
template.params[:url]
@url
end
end

View File

@@ -5,11 +5,11 @@ module Sources
url =~ /^https?:\/\/(?:\w+\.)?nico(?:seiga|video)\.jp/
end
def referer_url(template)
if template.params[:ref] =~ /seiga\.nicovideo\.jp\/seiga\/im\d+/ && template.params[:url] =~ /http:\/\/lohas\.nicoseiga\.jp\/priv\//
template.params[:ref]
def referer_url
if @referer_url =~ /seiga\.nicovideo\.jp\/seiga\/im\d+/ && @url =~ /http:\/\/lohas\.nicoseiga\.jp\/priv\//
@referer_url
else
template.params[:url]
@url
end
end

View File

@@ -6,10 +6,10 @@ module Sources
end
def referer_url(template)
if template.params[:ref] =~ /nijie\.info\/view\.php.+id=\d+/ && template.params[:url] =~ /pic\d+\.nijie.info\/nijie_picture\//
template.params[:ref]
if @referer_url =~ /nijie\.info\/view\.php.+id=\d+/ && @url =~ /pic\d+\.nijie.info\/nijie_picture\//
@referer_url
else
template.params[:url]
@url
end
end

View File

@@ -19,11 +19,11 @@ module Sources
url =~ /#{WEB}|#{IMG}|#{I12}/i
end
def referer_url(template)
if template.params[:ref] =~ /pixiv\.net\/member_illust.+mode=medium/ && template.params[:url] =~ /#{IMG}|#{I12}/
template.params[:ref]
def referer_url
if @referer_url =~ /pixiv\.net\/member_illust.+mode=medium/ && @url =~ /#{IMG}|#{I12}/
@referer_url
else
template.params[:url]
@url
end
end

View File

@@ -4,13 +4,13 @@ module Sources::Strategies
url =~ %r!https?://(?:mobile\.)?twitter\.com/\w+/status/\d+! || url =~ %r{https?://pbs\.twimg\.com/media/}
end
def referer_url(template)
if template.params[:ref] =~ %r!https?://(?:mobile\.)?twitter\.com/\w+/status/\d+! && template.params[:url] =~ %r{https?://pbs\.twimg\.com/media/}
template.params[:ref]
else
template.params[:url]
end
def referer_url
if @referer_url =~ %r!https?://(?:mobile\.)?twitter\.com/\w+/status/\d+! && @url =~ %r{https?://pbs\.twimg\.com/media/}
@referer_url
else
@url
end
end
def tags
[]