iloveck101 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/bin/iloveck101 +57 -0
  3. metadata +45 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 66cf58a890c173c74ecb46bfd45a201109932340
4
+ data.tar.gz: 70f7cddf8c973b33a737847f1ff2e1b9fb64fa3c
5
+ SHA512:
6
+ metadata.gz: 2b57e9bb3d6ae5f2b135d8669aebdb2e65cd8f145b3855b2ebb452bf12396541b23b54384d20672b0ee7c252bd8e22027ac95ca923185e868229e68b95978a9d
7
+ data.tar.gz: 6bc17062805da87fb1018ee463665e7369d03ee5ea37156e12d6f9db72ce5de039c3196ee6b97c107496374a56199834a2eb21c597231ebc8047780f96db3e12
data/bin/iloveck101 ADDED
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'open-uri'
4
+ require 'set'
5
+ require 'fileutils'
6
+
7
+ def iloveck101(url)
8
+ page_uri = URI.parse(url)
9
+ if page_uri.hostname.nil? or not page_uri.hostname.end_with?('ck101.com')
10
+ STDERR.print "Unrecognizeed URL: #{url}\n"
11
+ return
12
+ end
13
+
14
+ case page_uri.path
15
+ when %r{thread-(\d+)-.+\.html}
16
+ thread_id = $1
17
+ else
18
+ STDERR.print "Unrecognizeed URL: #{url}\n"
19
+ return
20
+ end
21
+
22
+ page_content = page_uri.read
23
+
24
+ title = page_content.match(%r{<title>(.+)</title>})[1]
25
+ .split(' - ')[0]
26
+ .gsub('/', '')
27
+ .strip
28
+
29
+ image_url_set = Set.new(
30
+ page_content
31
+ .scan(%r{file="([^"]+)"})
32
+ .map { |e| e[0] }
33
+ .find_all { |e| e.index('.thumb.').nil?}
34
+ )
35
+
36
+ target_folder_path = File.expand_path("~/Pictures/iloveck101/#{thread_id} - #{title}")
37
+ if not Dir.exists?(target_folder_path)
38
+ FileUtils.mkdir_p(target_folder_path)
39
+ end
40
+
41
+ image_url_set.each { |image_url|
42
+ image_uri = page_uri.merge(image_url)
43
+ filename = File.expand_path(File.basename(image_uri.path), target_folder_path)
44
+ File.open(filename, 'wb') { |f|
45
+ f.write(open(image_uri).read)
46
+ }
47
+ }
48
+
49
+ end
50
+
51
+ if __FILE__ == $0
52
+ if ARGV.length > 1
53
+ iloveck101(ARGV[0])
54
+ else
55
+ STDERR.print "Usage: #{File.basename($0)} URL\n"
56
+ end
57
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: iloveck101
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - WanCW
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-03 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Download images from ck101 thread, inspired by tzangms.
14
+ email: wancw.wang@gmail.com
15
+ executables:
16
+ - iloveck101
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - bin/iloveck101
21
+ homepage: http://github.com/wancw/iloveck101
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.0.3
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: Download images from ck101 thread
45
+ test_files: []