From 98ef1816ba7b937aed850a788c5935d32b3a02b9 Mon Sep 17 00:00:00 2001 From: Toks Date: Tue, 22 Dec 2015 12:29:46 -0500 Subject: [PATCH] Rewrite nijie html view page to image url --- .../downloads/rewrite_strategies/base.rb | 2 +- .../downloads/rewrite_strategies/nijie.rb | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 app/logical/downloads/rewrite_strategies/nijie.rb diff --git a/app/logical/downloads/rewrite_strategies/base.rb b/app/logical/downloads/rewrite_strategies/base.rb index 8550eb652..c2c7d3ff6 100644 --- a/app/logical/downloads/rewrite_strategies/base.rb +++ b/app/logical/downloads/rewrite_strategies/base.rb @@ -6,7 +6,7 @@ module Downloads end def self.strategies - [Downloads::RewriteStrategies::Pixiv, Downloads::RewriteStrategies::NicoSeiga, Downloads::RewriteStrategies::Twitpic, Downloads::RewriteStrategies::DeviantArt, Downloads::RewriteStrategies::Tumblr, Downloads::RewriteStrategies::Moebooru, Downloads::RewriteStrategies::Twitter] + [Downloads::RewriteStrategies::Pixiv, Downloads::RewriteStrategies::NicoSeiga, Downloads::RewriteStrategies::Twitpic, Downloads::RewriteStrategies::DeviantArt, Downloads::RewriteStrategies::Tumblr, Downloads::RewriteStrategies::Moebooru, Downloads::RewriteStrategies::Twitter, Downloads::RewriteStrategies::Nijie] end def rewrite(url, headers, data = {}) diff --git a/app/logical/downloads/rewrite_strategies/nijie.rb b/app/logical/downloads/rewrite_strategies/nijie.rb new file mode 100644 index 000000000..ecd14e52d --- /dev/null +++ b/app/logical/downloads/rewrite_strategies/nijie.rb @@ -0,0 +1,40 @@ +module Downloads + module RewriteStrategies + class Nijie < Base + attr_accessor :url, :source + + def initialize(url) + @url = url + end + + def rewrite(url, headers, data = {}) + if url =~ %r{https?://nijie\.info\/view\.php.+id=\d+} + url, headers = rewrite_html_pages(url, headers) + end + + return [url, headers, data] + end + + protected + def rewrite_html_pages(url, headers) + # example: http://nijie.info/view.php?id=151126 + + if url =~ %r{https?://nijie\.info\/view\.php.+id=\d+} + return [source.image_url, headers] + else + return [url, headers] + end + end + + # Cache the source data so it gets fetched at most once. + def source + @source ||= begin + source = ::Sources::Strategies::Nijie.new(url) + source.get + + source + end + end + end + end +end