From 0a61aac231c411948a35f21998b1d230f213aa98 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Thu, 9 Oct 2014 14:26:33 -0700 Subject: [PATCH] refactor --- app/logical/downloads/file.rb | 7 +------ .../{strategies => rewrite_strategies}/base.rb | 2 +- .../deviant_art.rb | 2 +- .../moebooru.rb | 2 +- .../nico_seiga.rb | 2 +- .../{strategies => rewrite_strategies}/pixiv.rb | 2 +- .../tumblr.rb | 2 +- .../twitpic.rb | 2 +- app/models/upload.rb | 17 ++++++++++------- 9 files changed, 18 insertions(+), 20 deletions(-) rename app/logical/downloads/{strategies => rewrite_strategies}/base.rb (95%) rename app/logical/downloads/{strategies => rewrite_strategies}/deviant_art.rb (97%) rename app/logical/downloads/{strategies => rewrite_strategies}/moebooru.rb (96%) rename app/logical/downloads/{strategies => rewrite_strategies}/nico_seiga.rb (97%) rename app/logical/downloads/{strategies => rewrite_strategies}/pixiv.rb (99%) rename app/logical/downloads/{strategies => rewrite_strategies}/tumblr.rb (97%) rename app/logical/downloads/{strategies => rewrite_strategies}/twitpic.rb (97%) diff --git a/app/logical/downloads/file.rb b/app/logical/downloads/file.rb index 0c201597e..566e5bf0e 100644 --- a/app/logical/downloads/file.rb +++ b/app/logical/downloads/file.rb @@ -11,11 +11,6 @@ module Downloads @tries = 0 end - def download_ugoira! - converter = PixivUgoiraConverter.new(source, file_path, :webm) - converter.process! - end - def download! http_get_streaming do |response| self.content_type = response["Content-Type"] @@ -27,7 +22,7 @@ module Downloads end def before_download(url, headers) - Strategies::Base.strategies.each do |strategy| + RewriteStrategies::Base.strategies.each do |strategy| url, headers = strategy.new.rewrite(url, headers) end diff --git a/app/logical/downloads/strategies/base.rb b/app/logical/downloads/rewrite_strategies/base.rb similarity index 95% rename from app/logical/downloads/strategies/base.rb rename to app/logical/downloads/rewrite_strategies/base.rb index 39bdf3f03..1b840854d 100644 --- a/app/logical/downloads/strategies/base.rb +++ b/app/logical/downloads/rewrite_strategies/base.rb @@ -1,5 +1,5 @@ module Downloads - module Strategies + module RewriteStrategies class Base def self.strategies [Pixiv, NicoSeiga, Twitpic, DeviantArt, Tumblr, Moebooru] diff --git a/app/logical/downloads/strategies/deviant_art.rb b/app/logical/downloads/rewrite_strategies/deviant_art.rb similarity index 97% rename from app/logical/downloads/strategies/deviant_art.rb rename to app/logical/downloads/rewrite_strategies/deviant_art.rb index 32ebe028c..db21cbf5a 100644 --- a/app/logical/downloads/strategies/deviant_art.rb +++ b/app/logical/downloads/rewrite_strategies/deviant_art.rb @@ -1,5 +1,5 @@ module Downloads - module Strategies + module RewriteStrategies class DeviantArt < Base def rewrite(url, headers) if url =~ /https?:\/\/(?:.+?\.)?deviantart\.(?:com|net)/ diff --git a/app/logical/downloads/strategies/moebooru.rb b/app/logical/downloads/rewrite_strategies/moebooru.rb similarity index 96% rename from app/logical/downloads/strategies/moebooru.rb rename to app/logical/downloads/rewrite_strategies/moebooru.rb index 424c18f77..2901916f3 100644 --- a/app/logical/downloads/strategies/moebooru.rb +++ b/app/logical/downloads/rewrite_strategies/moebooru.rb @@ -1,5 +1,5 @@ module Downloads - module Strategies + module RewriteStrategies class Moebooru < Base DOMAINS = '(?:[^.]+\.)?yande\.re|konachan\.com' diff --git a/app/logical/downloads/strategies/nico_seiga.rb b/app/logical/downloads/rewrite_strategies/nico_seiga.rb similarity index 97% rename from app/logical/downloads/strategies/nico_seiga.rb rename to app/logical/downloads/rewrite_strategies/nico_seiga.rb index cf6f481df..f226a51ff 100644 --- a/app/logical/downloads/strategies/nico_seiga.rb +++ b/app/logical/downloads/rewrite_strategies/nico_seiga.rb @@ -1,5 +1,5 @@ module Downloads - module Strategies + module RewriteStrategies class NicoSeiga < Base def rewrite(url, headers) if url =~ %r{https?://lohas\.nicoseiga\.jp} || url =~ %r{https?://seiga\.nicovideo\.jp} diff --git a/app/logical/downloads/strategies/pixiv.rb b/app/logical/downloads/rewrite_strategies/pixiv.rb similarity index 99% rename from app/logical/downloads/strategies/pixiv.rb rename to app/logical/downloads/rewrite_strategies/pixiv.rb index 77f04c788..316f0c503 100644 --- a/app/logical/downloads/strategies/pixiv.rb +++ b/app/logical/downloads/rewrite_strategies/pixiv.rb @@ -1,5 +1,5 @@ module Downloads - module Strategies + module RewriteStrategies class Pixiv < Base def rewrite(url, headers) if url =~ /https?:\/\/(?:\w+\.)?pixiv\.net/ diff --git a/app/logical/downloads/strategies/tumblr.rb b/app/logical/downloads/rewrite_strategies/tumblr.rb similarity index 97% rename from app/logical/downloads/strategies/tumblr.rb rename to app/logical/downloads/rewrite_strategies/tumblr.rb index e5ba5a5dd..2d9dc1434 100644 --- a/app/logical/downloads/strategies/tumblr.rb +++ b/app/logical/downloads/rewrite_strategies/tumblr.rb @@ -1,5 +1,5 @@ module Downloads - module Strategies + module RewriteStrategies class Tumblr < Base def rewrite(url, headers) if url =~ %r{^https?://.*tumblr\.com} diff --git a/app/logical/downloads/strategies/twitpic.rb b/app/logical/downloads/rewrite_strategies/twitpic.rb similarity index 97% rename from app/logical/downloads/strategies/twitpic.rb rename to app/logical/downloads/rewrite_strategies/twitpic.rb index 0939af09c..47f95fda7 100644 --- a/app/logical/downloads/strategies/twitpic.rb +++ b/app/logical/downloads/rewrite_strategies/twitpic.rb @@ -1,5 +1,5 @@ module Downloads - module Strategies + module RewriteStrategies class Twitpic < Base def rewrite(url, headers) if url =~ %r{https?://twitpic\.com} || url =~ %r{^https?://d3j5vwomefv46c\.cloudfront\.net} diff --git a/app/models/upload.rb b/app/models/upload.rb index 17a369ccd..ce6edca73 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -327,14 +327,17 @@ class Upload < ActiveRecord::Base # Downloads the file to destination_path def download_from_source(destination_path) - download = Downloads::File.new(source, destination_path) - if is_ugoira? - download.download_ugoira! - else - download.download! - end self.file_path = destination_path - self.source = download.source + + if is_ugoira? + converter = PixivUgoiraConverter.new(source, destination_path, :webm) + converter.process! + self.source = source + else + download = Downloads::File.new(source, destination_path) + download.download! + self.source = download.source + end end end