fixes #3382
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
class SourcesController < ApplicationController
|
||||
respond_to :json, :xml
|
||||
rescue_from Sources::Site::NoStrategyError, :with => :no_strategy
|
||||
|
||||
def show
|
||||
@source = Sources::Site.new(params[:url], :referer_url => params[:ref])
|
||||
@@ -9,4 +10,10 @@ class SourcesController < ApplicationController
|
||||
format.xml { render xml: @source.to_h.to_xml(root: "source") }
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def no_strategy
|
||||
render json: {message: "Unsupported site"}.to_json, status: 400
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
class ImageProxy
|
||||
def self.needs_proxy?(url)
|
||||
fake_referer_for(url).present?
|
||||
rescue Sources::Site::NoStrategyError
|
||||
false
|
||||
end
|
||||
|
||||
def self.fake_referer_for(url)
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
module Sources
|
||||
class Site
|
||||
class NoStrategyError < RuntimeError ; end
|
||||
|
||||
attr_reader :url, :strategy
|
||||
delegate :get, :get_size, :site_name, :artist_name,
|
||||
:profile_url, :image_url, :tags, :artists, :unique_id,
|
||||
@@ -22,6 +24,8 @@ module Sources
|
||||
@strategy = strategy.new(url, referer_url)
|
||||
break
|
||||
end
|
||||
|
||||
raise NoStrategyError.new
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user