drophunter 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/lib/drophunter.rb +1 -1
- data/lib/drophunter/file_types/image.rb +2 -4
- data/lib/drophunter/page.rb +4 -2
- data/lib/drophunter/savers/local.rb +11 -0
- data/lib/drophunter/version.rb +1 -1
- data/lib/drophunter/worker.rb +6 -7
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: beec06cbf8c6bf2d65f374e48007143296485888
|
4
|
+
data.tar.gz: c8ad303da7b5cbd8afc4173311b143198e5dc916
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb39bc5b824fe6a5cdfe35f3228248c48d66ebc29a23f52dc6a48d898f92a93e2797754418b443cc21d80df9aa623922c461548f7c51ade68d572cbc473214ca
|
7
|
+
data.tar.gz: a712abdcbcbbeb990f450828ee6b5d07a58cf79a8fcd6f7885fed993e551029b87a8613ead42c7cb93c22ec9183d0db460f77a3e94d058bf1b5258e717fa74ca
|
data/lib/drophunter.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
module Drophunter
|
2
2
|
module FileTypes
|
3
3
|
class Image < Struct.new(:content, :id)
|
4
|
-
def find_and_save
|
4
|
+
def find_and_save(saver)
|
5
5
|
if image_element
|
6
6
|
puts "#{id} is OK"
|
7
7
|
|
8
|
-
|
9
|
-
file << open(image_element.attr("src")).read
|
10
|
-
end
|
8
|
+
saver.save(id, image_element.attr("src"))
|
11
9
|
else
|
12
10
|
puts "#{id} is not a Droplr image"
|
13
11
|
end
|
data/lib/drophunter/page.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
+
require "drophunter/savers/local"
|
2
|
+
|
1
3
|
module Drophunter
|
2
4
|
class Page < Struct.new(:id)
|
3
5
|
BASE_URL = "http://d.pr/i/"
|
4
6
|
|
5
|
-
def save(something)
|
7
|
+
def save(something, saver)
|
6
8
|
puts "Downloading #{url}"
|
7
9
|
|
8
10
|
begin
|
9
|
-
something.new(Nokogiri::HTML(open(url)), id).find_and_save
|
11
|
+
something.new(Nokogiri::HTML(open(url)), id).find_and_save(saver)
|
10
12
|
rescue *error_messages.keys => error
|
11
13
|
puts error_messages[error.class]
|
12
14
|
end
|
data/lib/drophunter/version.rb
CHANGED
data/lib/drophunter/worker.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "open-uri"
|
2
2
|
require "nokogiri"
|
3
3
|
require "drophunter/page"
|
4
|
+
require "drophunter/savers/local"
|
4
5
|
require "drophunter/file_types/image"
|
5
6
|
|
6
7
|
module Drophunter
|
@@ -11,10 +12,10 @@ module Drophunter
|
|
11
12
|
send("#{strategy || :default}_strategy")
|
12
13
|
end
|
13
14
|
|
14
|
-
private
|
15
|
-
|
16
15
|
def save_file(id)
|
17
|
-
Drophunter::
|
16
|
+
default_saver = Drophunter::Savers::Local.new
|
17
|
+
|
18
|
+
Drophunter::Page.new(id).save(Drophunter::FileTypes::Image, default_saver)
|
18
19
|
end
|
19
20
|
|
20
21
|
def default_strategy
|
@@ -23,14 +24,12 @@ module Drophunter
|
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
26
|
-
def random_strategy
|
27
|
+
def random_strategy(&block)
|
27
28
|
Enumerator.new do |enumerator|
|
28
29
|
loop do
|
29
30
|
enumerator.yield(4.times.map { ALLOWED_CHARS[Random.rand(0..ALLOWED_CHARS.length)] }.join)
|
30
31
|
end
|
31
|
-
end.each
|
32
|
-
save_file(id)
|
33
|
-
end
|
32
|
+
end.each { |id| block.call(id) }
|
34
33
|
end
|
35
34
|
end
|
36
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drophunter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airat Shigapov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -105,6 +105,7 @@ files:
|
|
105
105
|
- lib/drophunter.rb
|
106
106
|
- lib/drophunter/file_types/image.rb
|
107
107
|
- lib/drophunter/page.rb
|
108
|
+
- lib/drophunter/savers/local.rb
|
108
109
|
- lib/drophunter/version.rb
|
109
110
|
- lib/drophunter/worker.rb
|
110
111
|
homepage: http://github.com/airatshigapov/drophunter
|
@@ -127,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
128
|
version: '0'
|
128
129
|
requirements: []
|
129
130
|
rubyforge_project:
|
130
|
-
rubygems_version: 2.4.5
|
131
|
+
rubygems_version: 2.4.5.1
|
131
132
|
signing_key:
|
132
133
|
specification_version: 4
|
133
134
|
summary: drophunter
|