refactor
This commit is contained in:
@@ -11,11 +11,6 @@ module Downloads
|
|||||||
@tries = 0
|
@tries = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def download_ugoira!
|
|
||||||
converter = PixivUgoiraConverter.new(source, file_path, :webm)
|
|
||||||
converter.process!
|
|
||||||
end
|
|
||||||
|
|
||||||
def download!
|
def download!
|
||||||
http_get_streaming do |response|
|
http_get_streaming do |response|
|
||||||
self.content_type = response["Content-Type"]
|
self.content_type = response["Content-Type"]
|
||||||
@@ -27,7 +22,7 @@ module Downloads
|
|||||||
end
|
end
|
||||||
|
|
||||||
def before_download(url, headers)
|
def before_download(url, headers)
|
||||||
Strategies::Base.strategies.each do |strategy|
|
RewriteStrategies::Base.strategies.each do |strategy|
|
||||||
url, headers = strategy.new.rewrite(url, headers)
|
url, headers = strategy.new.rewrite(url, headers)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
module Downloads
|
module Downloads
|
||||||
module Strategies
|
module RewriteStrategies
|
||||||
class Base
|
class Base
|
||||||
def self.strategies
|
def self.strategies
|
||||||
[Pixiv, NicoSeiga, Twitpic, DeviantArt, Tumblr, Moebooru]
|
[Pixiv, NicoSeiga, Twitpic, DeviantArt, Tumblr, Moebooru]
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
module Downloads
|
module Downloads
|
||||||
module Strategies
|
module RewriteStrategies
|
||||||
class DeviantArt < Base
|
class DeviantArt < Base
|
||||||
def rewrite(url, headers)
|
def rewrite(url, headers)
|
||||||
if url =~ /https?:\/\/(?:.+?\.)?deviantart\.(?:com|net)/
|
if url =~ /https?:\/\/(?:.+?\.)?deviantart\.(?:com|net)/
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
module Downloads
|
module Downloads
|
||||||
module Strategies
|
module RewriteStrategies
|
||||||
class Moebooru < Base
|
class Moebooru < Base
|
||||||
DOMAINS = '(?:[^.]+\.)?yande\.re|konachan\.com'
|
DOMAINS = '(?:[^.]+\.)?yande\.re|konachan\.com'
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
module Downloads
|
module Downloads
|
||||||
module Strategies
|
module RewriteStrategies
|
||||||
class NicoSeiga < Base
|
class NicoSeiga < Base
|
||||||
def rewrite(url, headers)
|
def rewrite(url, headers)
|
||||||
if url =~ %r{https?://lohas\.nicoseiga\.jp} || url =~ %r{https?://seiga\.nicovideo\.jp}
|
if url =~ %r{https?://lohas\.nicoseiga\.jp} || url =~ %r{https?://seiga\.nicovideo\.jp}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
module Downloads
|
module Downloads
|
||||||
module Strategies
|
module RewriteStrategies
|
||||||
class Pixiv < Base
|
class Pixiv < Base
|
||||||
def rewrite(url, headers)
|
def rewrite(url, headers)
|
||||||
if url =~ /https?:\/\/(?:\w+\.)?pixiv\.net/
|
if url =~ /https?:\/\/(?:\w+\.)?pixiv\.net/
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
module Downloads
|
module Downloads
|
||||||
module Strategies
|
module RewriteStrategies
|
||||||
class Tumblr < Base
|
class Tumblr < Base
|
||||||
def rewrite(url, headers)
|
def rewrite(url, headers)
|
||||||
if url =~ %r{^https?://.*tumblr\.com}
|
if url =~ %r{^https?://.*tumblr\.com}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
module Downloads
|
module Downloads
|
||||||
module Strategies
|
module RewriteStrategies
|
||||||
class Twitpic < Base
|
class Twitpic < Base
|
||||||
def rewrite(url, headers)
|
def rewrite(url, headers)
|
||||||
if url =~ %r{https?://twitpic\.com} || url =~ %r{^https?://d3j5vwomefv46c\.cloudfront\.net}
|
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
|
# Downloads the file to destination_path
|
||||||
def download_from_source(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.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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user