30 lines
633 B
Ruby
30 lines
633 B
Ruby
module Sources
|
|
module Strategies
|
|
def self.all
|
|
return [
|
|
Strategies::Pixiv,
|
|
Strategies::NicoSeiga,
|
|
Strategies::Twitter,
|
|
Strategies::DeviantArt,
|
|
Strategies::Tumblr,
|
|
Strategies::ArtStation,
|
|
Strategies::Nijie,
|
|
Strategies::Pawoo,
|
|
Strategies::Moebooru,
|
|
|
|
Strategies::Null # MUST BE LAST!
|
|
]
|
|
end
|
|
|
|
def self.find(url, referer=nil)
|
|
all
|
|
.detect { |strategy| strategy.match?(url, referer) }
|
|
.new(url, referer)
|
|
end
|
|
|
|
def self.canonical(url, referer)
|
|
find(url, referer).canonical_url
|
|
end
|
|
end
|
|
end
|