mangdown 0.13.2 → 0.13.3
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
- data/lib/mangdown.rb +1 -1
- data/lib/mangdown/chapter.rb +9 -4
- data/lib/mangdown/manga.rb +2 -2
- data/lib/mangdown/{mangdown_hash.rb → md_hash.rb} +0 -0
- data/lib/mangdown/page.rb +15 -9
- data/lib/mangdown/version.rb +1 -1
- metadata +3 -4
- data/spec/lib/mangdown/popular_spec.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b4edce6f4511a5513de3fc39acbee0bbadeb6a7
|
4
|
+
data.tar.gz: 10f48a8789a42a744029aa07812a6d506d0388ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1af096493c7ea75518ec6e7ddfd8c802d9f8af70744828b6573269f7dfcc0e2d990dc3fffa3780773cab1b79622ab49442dd1b236622e2614efc6c6d26cbea9c
|
7
|
+
data.tar.gz: 2dacfd63034bb0f519e7cc414573e363d3337f3fa1259ad1e7d3648173541af4c91df9acefa090ec8d80b68817f1daa251d3c81bdd746dd33164b0b221f460c1
|
data/lib/mangdown.rb
CHANGED
data/lib/mangdown/chapter.rb
CHANGED
@@ -62,12 +62,17 @@ module Mangdown
|
|
62
62
|
end
|
63
63
|
|
64
64
|
# download all pages in a chapter
|
65
|
-
def download_to(dir = nil)
|
65
|
+
def download_to(dir = nil, opts = { force_download: false })
|
66
66
|
pages = map(&:to_page)
|
67
67
|
failed = []
|
68
68
|
succeeded = []
|
69
|
+
skipped = []
|
69
70
|
|
70
71
|
setup_download_dir!(dir)
|
72
|
+
if opts[:force_download]
|
73
|
+
FileUtils.rm_r(to_path)
|
74
|
+
setup_download_dir!(dir)
|
75
|
+
end
|
71
76
|
|
72
77
|
Tools.hydra_streaming(pages) do |stage, page, data = nil|
|
73
78
|
case stage
|
@@ -76,7 +81,7 @@ module Mangdown
|
|
76
81
|
when :succeeded
|
77
82
|
succeeded << page
|
78
83
|
when :before
|
79
|
-
!page.file_exist?(to_path)
|
84
|
+
!(page.file_exist?(to_path) && skipped << page)
|
80
85
|
when :body
|
81
86
|
page.append_file_data(to_path, data) unless failed.include?(page)
|
82
87
|
when :complete
|
@@ -84,9 +89,9 @@ module Mangdown
|
|
84
89
|
end
|
85
90
|
end
|
86
91
|
|
87
|
-
FileUtils.rm_r(to_path) if succeeded.empty?
|
92
|
+
FileUtils.rm_r(to_path) if succeeded.empty? && skipped.empty?
|
88
93
|
|
89
|
-
{ failed: failed, succeeded: succeeded }
|
94
|
+
{ failed: failed, succeeded: succeeded, skipped: skipped }
|
90
95
|
end
|
91
96
|
|
92
97
|
private
|
data/lib/mangdown/manga.rb
CHANGED
@@ -39,7 +39,7 @@ module Mangdown
|
|
39
39
|
end
|
40
40
|
|
41
41
|
# download using enumerable
|
42
|
-
def download_to(dir, start = 0, stop = -1)
|
42
|
+
def download_to(dir, start = 0, stop = -1, opts = { force_download: false })
|
43
43
|
start, stop = validate_indeces!(start, stop)
|
44
44
|
setup_download_dir!(dir)
|
45
45
|
|
@@ -47,7 +47,7 @@ module Mangdown
|
|
47
47
|
chapters[start..stop].each do |md_hash|
|
48
48
|
chapter = md_hash.to_chapter
|
49
49
|
|
50
|
-
if chapter.download_to(to_path)
|
50
|
+
if chapter.download_to(to_path, opts)
|
51
51
|
bar.increment!
|
52
52
|
else
|
53
53
|
STDERR.puts("error: #{chapter.name} was not downloaded")
|
File without changes
|
data/lib/mangdown/page.rb
CHANGED
@@ -26,16 +26,18 @@ module Mangdown
|
|
26
26
|
dir = Tools.valid_path_name(dir)
|
27
27
|
path = File.join(dir, name)
|
28
28
|
if Dir.exist?(dir)
|
29
|
-
|
29
|
+
path = Dir.entries(dir).find { |file| file.to_s[path] } || path
|
30
30
|
end
|
31
|
-
|
32
|
-
@path = Tools.
|
33
|
-
@path = Tools.relative_or_absolute_path(@path)
|
31
|
+
path = Tools.valid_path_name(path)
|
32
|
+
@path = Tools.relative_or_absolute_path(path)
|
34
33
|
end
|
35
34
|
|
36
35
|
# downloads to specified directory
|
37
|
-
def download_to(dir = Dir.pwd)
|
38
|
-
return if file_exist?(dir)
|
36
|
+
def download_to(dir = Dir.pwd, opts = { force_download: false })
|
37
|
+
return if file_exist?(dir) && !opts[:force_download]
|
38
|
+
|
39
|
+
# cleanup existing file (all extensions)
|
40
|
+
delete_files!(dir) if opts[:force_download]
|
39
41
|
|
40
42
|
image = Tools.get(uri)
|
41
43
|
|
@@ -46,8 +48,6 @@ module Mangdown
|
|
46
48
|
end
|
47
49
|
|
48
50
|
def append_file_data(dir, data)
|
49
|
-
set_path(dir)
|
50
|
-
|
51
51
|
File.open(to_path, 'ab') { |file| file.write(data) }
|
52
52
|
end
|
53
53
|
|
@@ -63,7 +63,13 @@ module Mangdown
|
|
63
63
|
def file_exist?(dir = nil)
|
64
64
|
set_path(dir) if dir
|
65
65
|
|
66
|
-
Dir.entries(dir).any? { |file| file.to_s[to_path.to_s] }
|
66
|
+
Dir.entries(dir).any? { |file| file.to_s[to_path.basename.to_s] }
|
67
|
+
end
|
68
|
+
|
69
|
+
def delete_files!(dir)
|
70
|
+
while set_path(dir) && File.exist?(to_path)
|
71
|
+
File.delete(to_path)
|
72
|
+
end
|
67
73
|
end
|
68
74
|
end
|
69
75
|
end
|
data/lib/mangdown/version.rb
CHANGED
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.13.
|
4
|
+
version: 0.13.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jphager2
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -158,7 +158,7 @@ files:
|
|
158
158
|
- lib/mangdown/equality.rb
|
159
159
|
- lib/mangdown/manga.rb
|
160
160
|
- lib/mangdown/manga_list.rb
|
161
|
-
- lib/mangdown/
|
161
|
+
- lib/mangdown/md_hash.rb
|
162
162
|
- lib/mangdown/page.rb
|
163
163
|
- lib/mangdown/properties.rb
|
164
164
|
- lib/mangdown/tools.rb
|
@@ -172,7 +172,6 @@ files:
|
|
172
172
|
- spec/lib/mangdown/manga_spec.rb
|
173
173
|
- spec/lib/mangdown/mangdown_hash_spec.rb
|
174
174
|
- spec/lib/mangdown/page_spec.rb
|
175
|
-
- spec/lib/mangdown/popular_spec.rb
|
176
175
|
- spec/lib/mangdown/properties_spec.rb
|
177
176
|
- spec/lib/mangdown/tools_spec.rb
|
178
177
|
- spec/lib/mangdown/uri_spec.rb
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require_relative '../../spec_helper'
|
2
|
-
|
3
|
-
describe Mangdown::PopularManga do
|
4
|
-
let(:mangareader) {
|
5
|
-
Mangdown::PopularManga.new('http://www.mangareader.net/popular')
|
6
|
-
}
|
7
|
-
|
8
|
-
before do
|
9
|
-
VCR.insert_cassette 'events', record: :new_episodes
|
10
|
-
end
|
11
|
-
|
12
|
-
after do
|
13
|
-
VCR.eject_cassette
|
14
|
-
end
|
15
|
-
|
16
|
-
describe 'new' do
|
17
|
-
it 'must have a list of mangas' do
|
18
|
-
mangareader.mangas.wont_be(:empty?)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|