refactor
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
module Downloads
|
||||
module Strategies
|
||||
module RewriteStrategies
|
||||
class Base
|
||||
def self.strategies
|
||||
[Pixiv, NicoSeiga, Twitpic, DeviantArt, Tumblr, Moebooru]
|
||||
@@ -1,5 +1,5 @@
|
||||
module Downloads
|
||||
module Strategies
|
||||
module RewriteStrategies
|
||||
class DeviantArt < Base
|
||||
def rewrite(url, headers)
|
||||
if url =~ /https?:\/\/(?:.+?\.)?deviantart\.(?:com|net)/
|
||||
@@ -1,5 +1,5 @@
|
||||
module Downloads
|
||||
module Strategies
|
||||
module RewriteStrategies
|
||||
class Moebooru < Base
|
||||
DOMAINS = '(?:[^.]+\.)?yande\.re|konachan\.com'
|
||||
|
||||
@@ -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}
|
||||
@@ -1,5 +1,5 @@
|
||||
module Downloads
|
||||
module Strategies
|
||||
module RewriteStrategies
|
||||
class Pixiv < Base
|
||||
def rewrite(url, headers)
|
||||
if url =~ /https?:\/\/(?:\w+\.)?pixiv\.net/
|
||||
@@ -1,5 +1,5 @@
|
||||
module Downloads
|
||||
module Strategies
|
||||
module RewriteStrategies
|
||||
class Tumblr < Base
|
||||
def rewrite(url, headers)
|
||||
if url =~ %r{^https?://.*tumblr\.com}
|
||||
@@ -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}
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user