fourchan-kit 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 047bc139008229b6fbb9f7cb0d555930a3fa22cb
4
- data.tar.gz: 79ff64471bd3d66a49da9b526545d30c41282946
3
+ metadata.gz: 56b13505fc6117d7ae6860b257a6771be8216730
4
+ data.tar.gz: b818063288566a3a69ca2be15e7a4eabe34fbb08
5
5
  SHA512:
6
- metadata.gz: cad863d5032bf3048211c292459ac328a09a0fa50acf705d56d975bb82e147a96b0a16fcb26686af84630be55481aa967a5c8121c27db6950347dbf163827dd9
7
- data.tar.gz: 78ef9fd2a4fc6f353b16bba721f6474128b611582d35c722886d08e2486a6948b5eee0e4a056789a5bff19ff0c5f9c7ba3d87277b2461024aa0e4efce011f007
6
+ metadata.gz: 0140d628d49579bd7f0cdb83f4380799e2bae193e7bdafa3abffc3b4e88607f6a804dfe00b08641ec4f79f133351a8255820019234eacff464e47ddf3594fb3f
7
+ data.tar.gz: 6fe9c586d85098e8c991f31793fc5c04a8e36ae5f86fc52a0821188e4808faea571366f1317d61e2e5be31c8461da5c0ad3df47a7d32132a1446fabd5fd03659
data/Rakefile CHANGED
@@ -5,3 +5,14 @@ RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task :default => :spec
7
7
 
8
+ desc "generate and update gh-pages"
9
+ task :pages do
10
+ system(" set -x; yard --tag internal:'Maintainer Notes' --hide-tag internal ") or abort
11
+ system(" set -x; git checkout gh-pages ") or abort
12
+ system(" set -x; mkdir remove; mv * remove; mv remove/doc .; rm -rf remove ") or abort
13
+ system(" set -x; mv -v doc/* . ") or abort
14
+ system(" set -x; git add . ") or abort
15
+ system(" set -x; git commit --all -m 'Updating documentation' ") or abort
16
+ system(" set -x; git checkout develop ") or abort
17
+ puts "don't forget to run: git push origin gh-pages"
18
+ end
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency "json", "~> 1.8"
22
22
  spec.add_dependency "mechanize", "~> 2.7"
23
23
  spec.add_dependency "thor", "~> 0.19"
24
+ spec.add_dependency "parallel", "~> 1.0"
24
25
 
25
26
  spec.add_development_dependency "aruba", "~> 0.5"
26
27
  spec.add_development_dependency "bundler", "~> 1.6"
@@ -29,4 +30,5 @@ Gem::Specification.new do |spec|
29
30
  spec.add_development_dependency "rspec", "~> 2.14"
30
31
  spec.add_development_dependency "vcr", "~> 2.9"
31
32
  spec.add_development_dependency "webmock", "~> 1.17"
33
+ spec.add_development_dependency "yard", "~> 0.8"
32
34
  end
@@ -6,7 +6,7 @@ module Fourchan
6
6
 
7
7
  ##
8
8
  # This module contains methods for the 4chan API.
9
- # They all parse the JSON 4chan delivers and returns a Hash object.
9
+ # They all parse the JSON 4chan delivers and returns an Array object.
10
10
  module API
11
11
 
12
12
  ##
@@ -45,7 +45,7 @@ module Fourchan
45
45
  end
46
46
 
47
47
  ##
48
- # Returns an array of image URLs from the thread (see {Fourgem::Post#image_link}).
48
+ # Returns an array of image URLs from the thread (see {Fourchan::Kit::Post#image_link}).
49
49
  def images
50
50
  images = []
51
51
  self.posts.each do |post|
@@ -1,5 +1,6 @@
1
1
  require 'mechanize'
2
2
  require 'pathname'
3
+ require 'parallel'
3
4
 
4
5
  module Fourchan
5
6
  module Kit
@@ -34,18 +35,28 @@ module Fourchan
34
35
  ##
35
36
  # Downloads every image from a thread.
36
37
  #
38
+ # Makes use of parallel processing for faster downloading. Currently set to 8 threads.
39
+ #
37
40
  # @param link [URL] the URL for the thread to download.
38
41
  def self.download_thread(link, options = {})
39
42
  options[:checked] ||= false
40
43
 
41
44
  if options[:checked] || ( valid_thread?(link) && valid_link?(link) )
42
45
  board, thread_no = get_info(link)
43
- thread = Thread.new(board, thread_no)
46
+ thread = Thread.new(board, thread_no)
47
+ images = []
48
+ sizes = []
44
49
 
45
50
  thread.posts.each do |post|
46
- options[:fsize] = post.fsize
47
- download_image(post.image_link, options.dup) if post.image_link
51
+ sizes << post.fsize
52
+ images << post.image_link if post.tim
53
+ end
54
+
55
+ Parallel.each_with_index(images, in_threads: 8) do |image, index|
56
+ options[:fsize] = sizes[index]
57
+ download_image(image, options.dup)
48
58
  end
59
+
49
60
  else
50
61
  puts "Not a 4chan thread" unless options[:quiet]
51
62
  end
@@ -1,5 +1,5 @@
1
1
  module Fourchan
2
2
  module Kit
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fourchan-kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - lauritzsh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-02 00:00:00.000000000 Z
11
+ date: 2014-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.19'
55
+ - !ruby/object:Gem::Dependency
56
+ name: parallel
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: aruba
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +164,20 @@ dependencies:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
166
  version: '1.17'
167
+ - !ruby/object:Gem::Dependency
168
+ name: yard
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.8'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.8'
153
181
  description: Fourchan Kit is a Ruby wrapper and tool for the 4chan API. Use Fourchan
154
182
  Kit to interact with the API using Ruby, or use the tool to interact with the threads
155
183
  on 4chan.
@@ -268,3 +296,4 @@ test_files:
268
296
  - spec/fourchan_kit_tools_spec.rb
269
297
  - spec/spec_helper.rb
270
298
  - spec/threads.txt
299
+ has_rdoc: