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

View File

@@ -1,5 +1,5 @@
module Downloads
module Strategies
module RewriteStrategies
class Base
def self.strategies
[Pixiv, NicoSeiga, Twitpic, DeviantArt, Tumblr, Moebooru]

View File

@@ -1,5 +1,5 @@
module Downloads
module Strategies
module RewriteStrategies
class DeviantArt < Base
def rewrite(url, headers)
if url =~ /https?:\/\/(?:.+?\.)?deviantart\.(?:com|net)/

View File

@@ -1,5 +1,5 @@
module Downloads
module Strategies
module RewriteStrategies
class Moebooru < Base
DOMAINS = '(?:[^.]+\.)?yande\.re|konachan\.com'

View File

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

View File

@@ -1,5 +1,5 @@
module Downloads
module Strategies
module RewriteStrategies
class Pixiv < Base
def rewrite(url, headers)
if url =~ /https?:\/\/(?:\w+\.)?pixiv\.net/

View File

@@ -1,5 +1,5 @@
module Downloads
module Strategies
module RewriteStrategies
class Tumblr < Base
def rewrite(url, headers)
if url =~ %r{^https?://.*tumblr\.com}

View File

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

View File

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