mangdown 0.17.5 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +2 -4
- data/lib/mangdown/adapter/mangareader.rb +2 -2
- data/lib/mangdown/adapter/proxy.rb +1 -1
- data/lib/mangdown/chapter.rb +5 -4
- data/lib/mangdown/client.rb +4 -4
- data/lib/mangdown/manga.rb +7 -4
- data/lib/mangdown/page.rb +8 -7
- data/lib/mangdown/support/cbz.rb +2 -1
- data/lib/mangdown/version.rb +1 -1
- data/test/lib/mangdown/chapter_test.rb +3 -3
- data/test/lib/mangdown/manga_test.rb +2 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 15dbe30001d42c8b18faefe1a248710f9826ec03275a069056121abb6bfaf61d
|
4
|
+
data.tar.gz: 3f610805ad69a367342d3461c666c24802f366b8d9da3d8b1fb8bdeadbad5ca0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0faea9b82fbabcf2ae2b21c51acef39539c9f0450a00b37c995ccdbbde302f0bb977b95b4701536f7309c325e55986a737f0a224f15939221f428f470812994e
|
7
|
+
data.tar.gz: 67e7fabd848e64fb2f246fedb3102d86f1d2c923b3d16387b9f018d6fab308213cd57e99fae4248f9f072e9f122a7088abf6f020619fd0bb211d3519cf232cc0
|
data/README.md
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
![Gitten badge](http://gittens.r15.railsrumble.com//badge/jphager2/mangdown)
|
2
|
-
|
3
1
|
## Adapters [New]
|
4
2
|
Check out lib/mangdown/adapter.rb and lib/mangdown/adapters/mangareader.rb for examples of how to build an adapter.
|
5
3
|
|
@@ -21,7 +19,7 @@ require 'mangdown/client'
|
|
21
19
|
# Search for an exact match
|
22
20
|
results = M.find("Dragon Ball")
|
23
21
|
|
24
|
-
# Or if you need more flexibilty when searching for a manga,
|
22
|
+
# Or if you need more flexibilty when searching for a manga,
|
25
23
|
# use are Regex
|
26
24
|
results = M.find(/dragon ball(\ssd)?$/i)
|
27
25
|
|
@@ -34,7 +32,7 @@ manga.count
|
|
34
32
|
# Download everything
|
35
33
|
manga.download
|
36
34
|
|
37
|
-
# Download a specific range
|
35
|
+
# Download a specific range
|
38
36
|
manga.download(0, 99)
|
39
37
|
|
40
38
|
# Convert all downloaded chapters to CBZ
|
@@ -20,11 +20,11 @@ module Mangdown
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def is_manga?(uri = @uri)
|
23
|
-
uri.slice(
|
23
|
+
uri.slice(%r{#{root}(/\d+)?(/[^/]+)(\.html)?}i) == uri
|
24
24
|
end
|
25
25
|
|
26
26
|
def is_chapter?(uri = @uri)
|
27
|
-
uri.slice(
|
27
|
+
uri.slice(%r{#{root}(/[^/]+){1,2}/(\d+|chapter-\d+\.html)}i) == uri
|
28
28
|
end
|
29
29
|
|
30
30
|
def is_page?(uri = @uri)
|
@@ -18,7 +18,7 @@ module Mangdown
|
|
18
18
|
return super unless @adapter.respond_to?(method)
|
19
19
|
|
20
20
|
adapter.public_send(method, *args, &block)
|
21
|
-
rescue => error
|
21
|
+
rescue StandardError => error
|
22
22
|
logger.error(debug_error(method, error))
|
23
23
|
raise Mangdown::Error, "Adapter failed: #{error.message}"
|
24
24
|
end
|
data/lib/mangdown/chapter.rb
CHANGED
@@ -25,11 +25,12 @@ module Mangdown
|
|
25
25
|
self
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
@path ||=
|
28
|
+
def path
|
29
|
+
@path ||= setup_path
|
30
30
|
end
|
31
|
+
alias to_path path
|
31
32
|
|
32
|
-
def
|
33
|
+
def setup_path(dir = nil)
|
33
34
|
dir ||= File.join(DOWNLOAD_DIR, manga)
|
34
35
|
path = File.join(dir, name)
|
35
36
|
path = Tools.valid_path_name(path)
|
@@ -82,7 +83,7 @@ module Mangdown
|
|
82
83
|
private
|
83
84
|
|
84
85
|
def setup_download_dir!(dir)
|
85
|
-
|
86
|
+
setup_path(dir)
|
86
87
|
FileUtils.mkdir_p(to_path) unless Dir.exist?(to_path)
|
87
88
|
end
|
88
89
|
|
data/lib/mangdown/client.rb
CHANGED
@@ -22,7 +22,7 @@ module M
|
|
22
22
|
# cbz all subdirectories in a directory
|
23
23
|
def cbz(dir)
|
24
24
|
Mangdown::CBZ.all(dir)
|
25
|
-
rescue => error
|
25
|
+
rescue StandardError => error
|
26
26
|
raise Mangdown::Error, "Failed to package #{dir}: #{error.message}"
|
27
27
|
end
|
28
28
|
|
@@ -48,8 +48,8 @@ module M
|
|
48
48
|
end
|
49
49
|
|
50
50
|
# check if the data file is current
|
51
|
-
def file_current?(
|
52
|
-
File.exist?(
|
51
|
+
def file_current?(file)
|
52
|
+
File.exist?(file) && File.mtime(file) > (Time.now - 604_800)
|
53
53
|
end
|
54
54
|
|
55
55
|
# attempt to get the list from the data file
|
@@ -69,7 +69,7 @@ module M
|
|
69
69
|
end
|
70
70
|
File.open(path, 'w+') { |f| f.write(list.to_yaml) }
|
71
71
|
list
|
72
|
-
rescue => error
|
72
|
+
rescue StandardError => error
|
73
73
|
raise Mangdown::Error, "#{path} may be corrupt: #{error.message}"
|
74
74
|
end
|
75
75
|
end
|
data/lib/mangdown/manga.rb
CHANGED
@@ -43,7 +43,9 @@ module Mangdown
|
|
43
43
|
elsif chapter_result[:skipped].any?
|
44
44
|
skipped << chapter
|
45
45
|
end
|
46
|
+
|
46
47
|
next unless chapter_result[:failed].any?
|
48
|
+
|
47
49
|
logger.error({
|
48
50
|
msg: 'Chapter was not fully downloaded',
|
49
51
|
uri: chapter.uri,
|
@@ -57,11 +59,12 @@ module Mangdown
|
|
57
59
|
self
|
58
60
|
end
|
59
61
|
|
60
|
-
def
|
61
|
-
@path ||=
|
62
|
+
def path
|
63
|
+
@path ||= setup_path
|
62
64
|
end
|
65
|
+
alias to_path path
|
63
66
|
|
64
|
-
def
|
67
|
+
def setup_path(dir = nil)
|
65
68
|
dir ||= DOWNLOAD_DIR
|
66
69
|
path = File.join(dir, name)
|
67
70
|
@path = Tools.relative_or_absolute_path(path)
|
@@ -86,7 +89,7 @@ module Mangdown
|
|
86
89
|
end
|
87
90
|
|
88
91
|
def setup_download_dir!(dir)
|
89
|
-
|
92
|
+
setup_path(dir)
|
90
93
|
FileUtils.mkdir_p(to_path) unless Dir.exist?(to_path)
|
91
94
|
end
|
92
95
|
|
data/lib/mangdown/page.rb
CHANGED
@@ -20,14 +20,15 @@ module Mangdown
|
|
20
20
|
self
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
24
|
-
@path ||=
|
23
|
+
def path
|
24
|
+
@path ||= setup_path
|
25
25
|
end
|
26
|
+
alias to_path path
|
26
27
|
|
27
28
|
# Set path of page to file path if a file exists or to path
|
28
29
|
# without file extension if file is not found. File extensions
|
29
30
|
# are appended only after the file has been downloaded.
|
30
|
-
def
|
31
|
+
def setup_path(dir = nil)
|
31
32
|
dir ||= File.join(manga, chapter)
|
32
33
|
dir = Tools.valid_path_name(dir)
|
33
34
|
file = Dir.entries(dir).find { |f| f[name] } if Dir.exist?(dir)
|
@@ -45,7 +46,7 @@ module Mangdown
|
|
45
46
|
|
46
47
|
append_file_data(dir, image)
|
47
48
|
append_file_ext(dir)
|
48
|
-
rescue => error
|
49
|
+
rescue StandardError => error
|
49
50
|
logger.error({
|
50
51
|
msg: 'Failed to download page',
|
51
52
|
page: self,
|
@@ -61,7 +62,7 @@ module Mangdown
|
|
61
62
|
end
|
62
63
|
|
63
64
|
def append_file_ext(dir = nil)
|
64
|
-
|
65
|
+
setup_path(dir) if dir
|
65
66
|
path = to_path
|
66
67
|
ext = Tools.image_extension(path)
|
67
68
|
filename = "#{path}.#{ext}"
|
@@ -70,14 +71,14 @@ module Mangdown
|
|
70
71
|
end
|
71
72
|
|
72
73
|
def file_exist?(dir = nil)
|
73
|
-
|
74
|
+
setup_path(dir) if dir
|
74
75
|
|
75
76
|
Dir.entries(dir).any? { |file| file.to_s[to_path.basename.to_s] }
|
76
77
|
end
|
77
78
|
|
78
79
|
# cleanup existing file (all extensions)
|
79
80
|
def delete_files!(dir)
|
80
|
-
File.delete(to_path) while
|
81
|
+
File.delete(to_path) while setup_path(dir) && File.exist?(to_path)
|
81
82
|
end
|
82
83
|
end
|
83
84
|
end
|
data/lib/mangdown/support/cbz.rb
CHANGED
@@ -22,7 +22,7 @@ module Mangdown
|
|
22
22
|
private
|
23
23
|
|
24
24
|
def cbz_dir(dir)
|
25
|
-
dir = dir.to_s.sub(
|
25
|
+
dir = dir.to_s.sub(%r{/*$}, '')
|
26
26
|
|
27
27
|
zip_filename = dir + '.cbz'
|
28
28
|
return if File.exist?(zip_filename)
|
@@ -47,6 +47,7 @@ module Mangdown
|
|
47
47
|
def each_dir_or_page(dir)
|
48
48
|
Dir.glob(dir + '/*').each do |filename|
|
49
49
|
next if filename.include?('.cbz')
|
50
|
+
|
50
51
|
yield(filename)
|
51
52
|
end
|
52
53
|
end
|
data/lib/mangdown/version.rb
CHANGED
@@ -53,8 +53,8 @@ module Mangdown
|
|
53
53
|
)
|
54
54
|
end
|
55
55
|
|
56
|
-
def
|
57
|
-
@chapter.
|
56
|
+
def test_setup_path
|
57
|
+
@chapter.setup_path(Dir.pwd)
|
58
58
|
assert_equal "#{Dir.pwd}/name", @chapter.to_path.to_s
|
59
59
|
end
|
60
60
|
|
@@ -64,7 +64,7 @@ module Mangdown
|
|
64
64
|
alias old_hydra_streaming hydra_streaming
|
65
65
|
|
66
66
|
def hydra_streaming(objects, *other_args)
|
67
|
-
objects.map do |obj|
|
67
|
+
objects.map do |obj|
|
68
68
|
next unless yield(:before, obj)
|
69
69
|
yield(:succeeded, obj)
|
70
70
|
yield(:body, obj, 'data')
|
@@ -51,10 +51,10 @@ module Mangdown
|
|
51
51
|
assert_equal "#{Mangdown::DOWNLOAD_DIR}/name", manga.to_path.to_s
|
52
52
|
end
|
53
53
|
|
54
|
-
def
|
54
|
+
def test_setup_path
|
55
55
|
manga = Manga.new('uri', 'name')
|
56
56
|
|
57
|
-
manga.
|
57
|
+
manga.setup_path(Dir.pwd)
|
58
58
|
assert_equal "#{Dir.pwd}/name", manga.to_path.to_s
|
59
59
|
end
|
60
60
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mangdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jphager2
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.8'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: ruby-filemagic
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -195,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
195
|
version: '0'
|
196
196
|
requirements: []
|
197
197
|
rubyforge_project:
|
198
|
-
rubygems_version: 2.
|
198
|
+
rubygems_version: 2.7.7
|
199
199
|
signing_key:
|
200
200
|
specification_version: 4
|
201
201
|
summary: Download Manga
|