This commit is contained in:
r888888888
2014-10-09 14:26:33 -07:00
parent 5bc0bb88cf
commit 0a61aac231
9 changed files with 18 additions and 20 deletions

View File

@@ -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

View File

@@ -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]

View File

@@ -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)/

View File

@@ -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'

View File

@@ -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}

View File

@@ -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/

View File

@@ -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}

View File

@@ -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}

View File

@@ -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