manga_fetch 0.0.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/bin/manga_fetch +4 -1
- data/lib/manga_fetch/downloader.rb +12 -0
- data/lib/manga_fetch/fetcher.rb +42 -0
- data/lib/manga_fetch.rb +7 -36
- data.tar.gz.sig +3 -1
- metadata +4 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 870395ce4d4c86cedf154f07a78ba30ed2adc37c
|
4
|
+
data.tar.gz: f16ff576f1ae7e24645ebd86a5d9599c79d0bb7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa7be02326bc288750835ab04115464a6d5cf8fd5420dbda45281b79a149ae7b738e021d515f32b4bd0951c0e7883c30a25229c07ff3e3ca99ce5d7c8142eeb0
|
7
|
+
data.tar.gz: 3c6aff3e36cd2e026f29b9aafe61fb91470e0a24d01657eed18ccf9c9973f94cf9402c0d481dcba17aa4a93dbe4db9c804e5c507fe75dc585338af6c84faa416
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/bin/manga_fetch
CHANGED
@@ -7,5 +7,8 @@ $verbose = true
|
|
7
7
|
m = ARGV[1].match(/\A(\d+)\.\.(\d+)\Z/)
|
8
8
|
nums = m[1].to_i .. m[2].to_i
|
9
9
|
|
10
|
-
list = MangaFetch.fetch(name: ARGV[0], num: nums)
|
10
|
+
list = MangaFetch.fetch(name: ARGV[0], num: nums).flatten.sort
|
11
|
+
|
12
|
+
puts
|
11
13
|
puts list
|
14
|
+
list.each{|image| MangaFetch.download_image(src: image)}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module MangaFetch::Downloader
|
2
|
+
extend self
|
3
|
+
|
4
|
+
def download_image(src: nil, prefix: "/tmp")
|
5
|
+
image = @agent.get src
|
6
|
+
path = File.expand_path image.uri.to_s.split("/")[-3..-1].join("/"), prefix
|
7
|
+
Dir.mkdir File.expand_path image.uri.to_s.split("/")[-3..-3].join("/"), prefix rescue nil
|
8
|
+
Dir.mkdir File.expand_path image.uri.to_s.split("/")[-3..-2].join("/"), prefix rescue nil
|
9
|
+
File.write path, image.body
|
10
|
+
STDERR.puts "File [".blue + path.yellow + "] saved"
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module MangaFetch::Fetcher
|
2
|
+
extend self
|
3
|
+
|
4
|
+
# Fetch some pages form the manga named like `name`
|
5
|
+
def fetch(name: "berserk", num: nil)
|
6
|
+
init_agent("http://www.mangareader.net/#{name}")
|
7
|
+
|
8
|
+
images = if num.is_a? Fixnum
|
9
|
+
[ fetch_one(num) ]
|
10
|
+
elsif num.is_a? Enumerable
|
11
|
+
fetch_list(num)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def init_agent(url)
|
16
|
+
@agent = Mechanize.new
|
17
|
+
@agent.get url
|
18
|
+
@main = @agent.page
|
19
|
+
end
|
20
|
+
|
21
|
+
def fetch_one(num: 1)
|
22
|
+
link = "#{@main.uri.to_s}/#{num}"
|
23
|
+
STDERR.puts "Fetching Tome [".blue + "#{num}".yellow + "]".blue if $verbose
|
24
|
+
first_page = @agent.get(link)
|
25
|
+
|
26
|
+
last_page_num = first_page.at("#selectpage").text.split.last.to_i
|
27
|
+
(1..last_page_num).map do |i|
|
28
|
+
STDERR.puts "Fetching Tome [".blue + "#{num}".yellow + "] Image [".blue + "#{i} / #{last_page_num}".yellow + "]".blue if $verbose
|
29
|
+
current_page = @agent.get "#{first_page.uri.to_s}/#{i}"
|
30
|
+
image = current_page.at("#img")[:src]
|
31
|
+
STDERR.puts "-> ".blue + image.red if $verbose
|
32
|
+
image
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
def fetch_list(nums)
|
38
|
+
ones = []
|
39
|
+
nums.map{|num| ones << fetch_one(num: 1) } # , threads: 4
|
40
|
+
ones
|
41
|
+
end
|
42
|
+
end
|
data/lib/manga_fetch.rb
CHANGED
@@ -2,42 +2,13 @@ require "mechanize"
|
|
2
2
|
require "colorize"
|
3
3
|
|
4
4
|
module MangaFetch
|
5
|
-
|
6
|
-
|
7
|
-
# Fetch some pages form the manga named like `name`
|
8
|
-
def fetch(name: "berserk", num: nil)
|
9
|
-
init_agent("http://www.mangareader.net/#{name}")
|
10
|
-
|
11
|
-
images = if num.is_a? Fixnum
|
12
|
-
[ fetch_one(num) ]
|
13
|
-
elsif num.is_a? Enumerable
|
14
|
-
fetch_list(num)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def init_agent(url)
|
19
|
-
@agent = Mechanize.new
|
20
|
-
@agent.get url
|
21
|
-
@main = @agent.page
|
22
|
-
end
|
23
|
-
|
24
|
-
def fetch_one(num)
|
25
|
-
# links = @main.search("#listing td a").map{|e| e[:href]}
|
26
|
-
# link = links.find{|e| e.split("/").last == num.to_s}
|
27
|
-
link = "#{@main.uri.to_s}/#{num}"
|
28
|
-
STDERR.puts "Fetching Tome [".blue + "#{num}".yellow + "]".blue if $verbose
|
29
|
-
first_page = @agent.get(link)
|
5
|
+
end
|
30
6
|
|
31
|
-
|
32
|
-
|
33
|
-
STDERR.puts "Fetching Image [".blue + "#{i} / #{last_page_num}".yellow + "]".blue if $verbose
|
34
|
-
current_page = @agent.get "#{first_page.uri.to_s}/#{i}"
|
35
|
-
image = current_page.at("#img")[:src]
|
36
|
-
STDERR.puts "-> ".blue + image.red if $verbose
|
37
|
-
end
|
38
|
-
end
|
7
|
+
require_relative "manga_fetch/downloader"
|
8
|
+
require_relative "manga_fetch/fetcher"
|
39
9
|
|
40
|
-
|
41
|
-
|
42
|
-
|
10
|
+
module MangaFetch
|
11
|
+
include Downloader
|
12
|
+
include Fetcher
|
13
|
+
extend self
|
43
14
|
end
|
data.tar.gz.sig
CHANGED
@@ -1 +1,3 @@
|
|
1
|
-
|
1
|
+
�=쳄A�W�t?Q�`��1-�,~���r��)�n���<+����5�*��}�
|
2
|
+
|��ìx��������# VA���+}0 o�))~�ʧږA�X�8�|��T�~�**5fd��%��y����<�˞�X��E��v*^N�?Ć��|l��aŢ~��W�l��Fz���Uc�#mj� �J
|
3
|
+
�R�F��=�8�L'/:��R�J9L�s���=[;����Mg��K�r�]��?�Y3�4FB9��n_C#�
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: manga_fetch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arthur Poulet
|
@@ -93,7 +93,7 @@ dependencies:
|
|
93
93
|
- - ">="
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: 2.7.5
|
96
|
-
description:
|
96
|
+
description: add multi-thread and advanced features (download, opt parsing, ...)
|
97
97
|
email: arthur.poulet@mailoo.org
|
98
98
|
executables:
|
99
99
|
- manga_fetch
|
@@ -105,6 +105,8 @@ files:
|
|
105
105
|
- README.md
|
106
106
|
- bin/manga_fetch
|
107
107
|
- lib/manga_fetch.rb
|
108
|
+
- lib/manga_fetch/downloader.rb
|
109
|
+
- lib/manga_fetch/fetcher.rb
|
108
110
|
homepage: http://rubygems.org/gems/manga_fetch
|
109
111
|
licenses:
|
110
112
|
- WTFPL
|
metadata.gz.sig
CHANGED
Binary file
|