dmanga 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24588c8799ce6c0eb55a6f88c275c7465b7715b7
4
- data.tar.gz: a7f2fc77d3078dbcd223be75f53ef7c5b9c48216
3
+ metadata.gz: cf04eb02bbe8e6268d7ae75c820bfac829d2e4ed
4
+ data.tar.gz: c48748c58ada3e4ac4609ce830d7b4750b9083e5
5
5
  SHA512:
6
- metadata.gz: 6ec8775d1cec6eb892ad8ff19bc9c531df025a9738f54c53459713dfb4de1b37521915db1db53120836c6d78dc6811914b93a952f84c422e85ba61f6192f22df
7
- data.tar.gz: 7a7a383da35a56f9048a22c673332cbb45b1b5e309d0bea4837f46c48be09c8bf364a760c951b17e46c01273c65478876a5732d909fcba250962343254bbcdde
6
+ metadata.gz: 696e74eeb4c4e21d7f003f9d88d1332446a332bdaaa50f1e1ce5fbd327c0d309d82de722089341c9bf8c6b10ac4324246f9945754ec1b8b90120dabe7184a56b
7
+ data.tar.gz: e31919fe538cae709c16a162ab4631767bbb1f92079bab6d61cb3880f05c6e9f3277a0e840553b05493578ec548dc7e4ce69dad141ec1970abf0d651f2d38449
data/Gemfile CHANGED
@@ -2,5 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in mangad.gemspec
4
4
  gemspec
5
- # gem 'pry'
5
+ gem 'pry'
6
6
  # gem 'interactive_editor'
data/README.md CHANGED
@@ -7,6 +7,18 @@ manga) de forma automatizada e sem restrição de quantidade. Basta
7
7
  dizer o nome do manga e selecionar os capitulos que deseja baixar
8
8
  e pronto o script fará os downloads do capitulos selecionados.
9
9
 
10
+ #### Atualização
11
+
12
+ > - Corrigido erro com download de shokugeki no souma
13
+ > - Corrigido erro com download de elfen lied
14
+ > - Corrigido erro com download de tokyo ghoul:re no windows
15
+
16
+ > **Se acontecer qualquer erro atualize o script/programa (esse erro provalvemente já foi corrigido)**.
17
+
18
+ > Para atualizar:
19
+
20
+ > `gem update dmanga`
21
+
10
22
  ## Instalação
11
23
 
12
24
  ### Windows
@@ -28,7 +40,7 @@ Com isso o script/programa será instalado.
28
40
 
29
41
  Você pode atualizar o script/programa com:
30
42
 
31
- `gem update`
43
+ `gem update dmanga`
32
44
 
33
45
  Atualize sempre para obter melhoras (desempenho ou novas funcionalidades) e correções de bugs.
34
46
 
@@ -47,7 +59,7 @@ Pode ser necessário usar o sudo.
47
59
 
48
60
  Você pode atualizar o script/programa com:
49
61
 
50
- `gem update`
62
+ `gem update dmanga`
51
63
 
52
64
  Atualize sempre para obter melhoras (desempenho ou novas funcionalidades) e correções de bugs.
53
65
 
@@ -69,6 +81,10 @@ Ex2:
69
81
 
70
82
  `dmanga tomo-chan`
71
83
 
84
+ Ex3:
85
+ <!--![exemplo de uso](https://github.com/david-endrew/somethings/blob/master/uso_exemplo.gif)-->
86
+ ![exemplo de uso](https://github.com/david-endrew/somethings/blob/master/uso_exemplo.gif)
87
+
72
88
  obs: A pasta padrão de destino dos downloads é a pasta Downloads mas
73
89
  você pode dizer ao script a pasta de destino do downloads com a
74
90
  opçao -d, veja [Opções](#opções) para mais detalhes.
@@ -153,7 +169,7 @@ Mostra detalhes da execução do programa.
153
169
  `dmanga -d "C:\window\users\images\manga e animes" "One piece"`
154
170
 
155
171
  No windows, baixe 'One piece' para
156
- 'c:\window\users\images\manga e animes'
172
+ 'C:\window\users\images\manga e animes'
157
173
 
158
174
  `dmanga "One punch man"`
159
175
 
@@ -171,15 +187,19 @@ Baixa todos os capitulos.
171
187
 
172
188
  `34-96`
173
189
 
174
- Baixa do capitulos do 34 ao 96.
190
+ Baixa do capitulo 34 ao 96.
175
191
 
176
192
  `1,3,55`
177
193
 
178
- Baixa do capitulos 1, 2 e 55.
194
+ Baixa os capitulos 1, 3 e 55.
179
195
 
180
196
  `34,124`
181
197
 
182
- Baixa do capitulos 34 e 124.
198
+ Baixa os capitulos 34 e 124.
199
+
200
+ `200`
201
+
202
+ Baixa o capitulo 200.
183
203
 
184
204
  ## License
185
205
 
data/dmanga.gemspec CHANGED
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.require_paths = ["lib"]
33
33
 
34
34
  spec.add_runtime_dependency "ruby-progressbar","~> 1.8"
35
+ spec.add_runtime_dependency "addressable","~> 2.5"
35
36
  spec.add_runtime_dependency "rubyzip","~> 1.2"
36
37
  spec.add_runtime_dependency "formatador", "~> 0.2"
37
38
  spec.add_development_dependency "minitest","~> 5.10"
@@ -1,6 +1,7 @@
1
1
  # require 'dmanga/site_parser_base'
2
2
  require 'dmanga/site_parser_base'
3
3
  require 'dmanga/zip_file_generator'
4
+ #require 'pry'
4
5
 
5
6
  module DManga
6
7
  class MangaHostParser < SiteParserBase
@@ -76,6 +77,9 @@ module DManga
76
77
  # img.mangahost.net/br/images/img.png.webp => img.mangahost.net/br/mangas_files/img.png
77
78
  img.sub!(/images/, "mangas_files")
78
79
  img.sub!(/\.webp/, "")
80
+
81
+ #correct créditos img problem
82
+ correct_image_uri(img)
79
83
  end
80
84
  resul
81
85
  end
@@ -88,7 +92,7 @@ module DManga
88
92
  create_dir(chapter_dir)
89
93
 
90
94
  DManga::display_feedback "\nBaixando #{chapter_name}"
91
- imgs_donwload(chapter_dir, imgs_url)
95
+ imgs_download(chapter_dir, imgs_url)
92
96
  end
93
97
  end
94
98
 
@@ -99,5 +103,13 @@ module DManga
99
103
  def correct_chapters_name
100
104
  @chapters.each {|chapter| chapter[0].sub!(/[cC]ap.*?tulo/, "capitulo")}
101
105
  end
106
+
107
+ # Due to problems with open-uri and utf-8
108
+ # some images uris need to be corrected.
109
+ # substitute Cru00e9ditos for Créditos.
110
+ # one uri at a time
111
+ def correct_image_uri(img_uri)
112
+ img_uri.sub!(/[cC]r.*?ditos/, "Créditos")
113
+ end
102
114
  end
103
115
  end
@@ -2,6 +2,7 @@ require 'dmanga/options'
2
2
  require 'dmanga/os'
3
3
  require 'ruby-progressbar'
4
4
  require 'open-uri'
5
+ require 'addressable/uri'
5
6
  # require 'pry'
6
7
  # require 'formatador'
7
8
 
@@ -15,6 +16,7 @@ module DManga
15
16
  def initialize(argv)
16
17
  @options = Options.new(argv)
17
18
  @manga_url = nil
19
+ # manga_name also is used as manga directory name
18
20
  @manga_name = nil
19
21
  @chapters = nil
20
22
  end
@@ -123,44 +125,37 @@ module DManga
123
125
  end
124
126
  end
125
127
 
126
- def imgs_donwload(chp_path, imgs_urls)
128
+ # return a progressbar suitable to the user operating system
129
+ def get_progressbar
130
+ if DManga::OS.windows?
131
+ return ProgressBar.create(:title => 'Baixando',
132
+ :starting_at => 20,
133
+ :length => 70,
134
+ :total => nil)
135
+ else
136
+ return ProgressBar.create(:title => 'Baixando',
137
+ :starting_at => 20,
138
+ :total => nil)
139
+ end
140
+ end
141
+
142
+ # download images to a path relative to download directory
143
+ def imgs_download(chp_path, imgs_urls)
127
144
  imgs_urls.each do |url|
128
- original_filename = url.slice(/(\w|[_-])+\.(png|jpg)/)
129
- img_path = "#{@options.download_dir}/#{chp_path}/#{original_filename}"
145
+ original_filename = url.slice(/(?u)(\w|[_-])+\.(png|jpg)/)
146
+ #original_filename = url.slice(/(\w|[_-])+\.(png|jpg)/)
147
+
148
+ img_path = [@options.download_dir,
149
+ chp_path,
150
+ original_filename].join(File::SEPARATOR)
130
151
  unless File.exist? img_path
131
- DManga::display_feedback "\n#{url}"
132
- pbar = nil
133
- open(url,
134
- :content_length_proc => lambda {|size|
135
- if size.nil?
136
- if DManga::OS.windows?
137
- pbar = ProgressBar.create(:title => 'Baixando',
138
- :starting_at => 20,
139
- :length => 70,
140
- :total => nil)
141
- else
142
- pbar = ProgressBar.create(:title => 'Baixando',
143
- :starting_at => 20,
144
- :total => nil)
145
- end
146
- else
147
- if DManga::OS.windows?
148
- pbar = ProgressBar.create(:total => size / Integer(16384),
149
- :format => '%a %B %p%% %r KB/sec',
150
- :rate_scale => lambda { |rate|
151
- rate / 1024 },
152
- length: 70)
153
- else
154
- pbar = ProgressBar.create(:total => size / Integer(16384),
155
- :format => '%a %B %p%% %r KB/sec',
156
- :rate_scale => lambda { |rate|
157
- rate / 1024 })
158
- end
159
- end
160
- },
161
- :progress_proc => lambda {|s|
162
- pbar.increment
163
- }) do |response|
152
+ encoded_url = Addressable::URI.encode(url)
153
+ DManga::display_feedback "\n#{encoded_url}"
154
+ pbar = get_progressbar
155
+ open(
156
+ encoded_url,
157
+ :progress_proc => lambda {|s| pbar.increment }
158
+ ) do |response|
164
159
  if response.status[1] == "OK"
165
160
  DManga::display_feedback "Salvando imagem em:'#{img_path}'" if @options.verbose
166
161
  File.open(img_path, "wb") do |img|
@@ -174,29 +169,29 @@ module DManga
174
169
  end
175
170
 
176
171
  # check if the directory exists and
177
- # create a directory relative to download dir
178
- def create_dir(name)
179
- dir_path = [@options.download_dir, name].join(File::SEPARATOR)
180
- DManga::display_feedback "\nCriando diretorio '#{name}' em '#{dir_path}'" if @options.verbose
181
- unless Dir.exist? dir_path
182
- Dir.mkdir(dir_path)
172
+ # create a directory relative to downlaod directory
173
+ def create_dir(relative_path)
174
+ absolute_path = [@options.download_dir, relative_path].join(File::SEPARATOR)
175
+ DManga::display_feedback "\nCriando diretorio '#{relative_path}' em '#{@options.download_dir}'" if @options.verbose
176
+ unless Dir.exist? absolute_path
177
+ Dir.mkdir(absolute_path)
183
178
  puts if @options.verbose ## just a blank line for prettier output
184
179
  else
185
- DManga::display_feedback "'#{name}' directorio ja existe" if @options.verbose
180
+ DManga::display_feedback "'#{relative_path}' directorio ja existe" if @options.verbose
186
181
  end
187
182
  end
188
183
 
189
184
  def zip_chapter
190
-
185
+ # TODO
191
186
  end
192
187
 
193
- # return the distiny download directory
188
+ # Returns the download destination directory
194
189
  def download_dir
195
190
  @options.download_dir
196
191
  end
197
192
 
198
193
  def remove_invalid_simbols(name)
199
- # windows OS dont accep these simbols in folder name
194
+ # windows OS dont accept these simbols in folder name
200
195
  name.gsub!(/[\/\\:*?"<>|]/, '_')
201
196
  end
202
197
  end
@@ -1,3 +1,3 @@
1
1
  module DManga
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dmanga
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Endrew
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-28 00:00:00.000000000 Z
11
+ date: 2017-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-progressbar
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: addressable
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.5'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rubyzip
29
43
  requirement: !ruby/object:Gem::Requirement