webcomics 1.0.7 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: acc162cea31a18739e9d28f85e36b301632667e3
4
- data.tar.gz: 0cd91dcb5ac11bdca46f9dbe52bb0653b313483e
3
+ metadata.gz: e7f24b4b88e65cdbb40396fedae879b6ad3f7c98
4
+ data.tar.gz: a7ff820f56bdb16d30d5e9b4b392dfdf51d6a88a
5
5
  SHA512:
6
- metadata.gz: 69a88a539c423e2d88f4d608dfc4ef1049f919a6fd7e3eda177033fa41fca1fb618fadb2434bb8ad86eda51e190228365ed6f8680f5ff8542c4f6da058bad2c3
7
- data.tar.gz: 669b0f4e92db6069ab8f8f843861c844774fa98b6e9d6edbd1438552c20341eeab42d2fce7b8d913efb7775ba158022826d57378f1365d816dacbbe4a06dd287
6
+ metadata.gz: eb23e4c9ebfa39f4b0956ab23184154d25dda7545d4a4fee321d8e283879d209f52d5ed593e62df9d4ad3f75acdb8700248d998dc7b7b68d43c7d092d46bc38e
7
+ data.tar.gz: 0c5527550e1013089a2179e94c8b88285ecea6839a5128bf20643e986b852f4c2af61ae9b326ec4d4d9568213a67534144688ee44fea353210ab310728e2bb7e
data/lib/comics_cbz.rb ADDED
@@ -0,0 +1,55 @@
1
+ require 'zip'
2
+
3
+ module WebComics
4
+ class CBZ < ComicsDir
5
+ attr_accessor :cbz
6
+
7
+ def self.cbz_or_zip?(file)
8
+ if File.extname(file) == ".cbz" || File.extname(file) == ".zip"
9
+ return true
10
+ else
11
+ return false
12
+ end
13
+ end
14
+
15
+ def list_cbz_files
16
+ files_list = []
17
+ list_files.each do |cbz|
18
+ files_list.push(cbz) if CBZ.cbz_or_zip?(cbz)
19
+ end
20
+
21
+ files_list
22
+ end
23
+
24
+ def list_pages_inside(xml_ignore = true)
25
+ files_list = []
26
+ Zip::File.open("#{@series}/#{@cbz}") do |cbz|
27
+ cbz.each do |pages|
28
+ files_list.push(pages.name)
29
+ end
30
+ end
31
+
32
+ return CBZ.ignore_xml(files_list) if xml_ignore
33
+
34
+ files_list
35
+ end
36
+
37
+ def extract(index = 0)
38
+ @page = nil
39
+ Zip::File.open("#{@series}/#{@cbz}") do |cbz|
40
+ @page = cbz.extract(list_pages_inside[index], list_pages_inside[index])
41
+ end
42
+
43
+ @page
44
+ end
45
+
46
+ def self.ignore_xml(list)
47
+ files_list = []
48
+ list.each do |entry|
49
+ files_list.push(entry) if File.extname(entry) != ".xml"
50
+ end
51
+
52
+ files_list
53
+ end
54
+ end
55
+ end
data/lib/comics_db.rb CHANGED
@@ -1,7 +1,24 @@
1
- require "fileutils"
1
+ module WebComics
2
+ class ComicsDB
3
+ attr_accessor :db_record
4
+ attr_accessor :assets
2
5
 
6
+ def exists?
7
+ asset_names = []
8
+
9
+ Dir.entries(@assets).each do |a|
10
+ asset_names.push(a) if a == @db_record
11
+ end
12
+
13
+ !asset_names.empty?
14
+ end
15
+ end
16
+ end
17
+
18
+ # This class is kept here for backwards compadibity with older versions.
3
19
  class ComicsDB
4
20
  def self.exists?(db_table, assets)
21
+ warn "[DEPRECATION] `ComicsDB.exists?(db_table, assets) is deprecated. Please use `WebComics::ComicsDB.exists?` instead."
5
22
  asset_names = []
6
23
 
7
24
  Dir.entries(assets).each do |a|
data/lib/comics_dir.rb CHANGED
@@ -1,10 +1,90 @@
1
+ module WebComics
2
+ class ComicsDir
3
+ attr_accessor :series
1
4
 
5
+ def self.comics_entries(dir)
6
+ entries = Dir.entries(dir)
7
+ entries.delete(".")
8
+ entries.delete("..")
9
+
10
+ entries
11
+ end
12
+
13
+ def self.trim(entries)
14
+ trimed_entries = []
15
+ entries.each do |e|
16
+ trimed_entries.push(File.basename(e, ".*"))
17
+ end
18
+
19
+ trimed_entries
20
+ end
21
+
22
+ def directory?
23
+ File.directory?(@series)
24
+ end
25
+
26
+ def list_directories
27
+ dirs_list = []
28
+ ComicsDir.comics_entries(@series).each do |d|
29
+ dirs_list.push(d) if File.directory?("#{@series}/#{d}")
30
+ end
31
+
32
+ dirs_list
33
+ end
34
+
35
+ def file?
36
+ File.file?(@series)
37
+ end
38
+
39
+ def list_files
40
+ files_list = []
41
+ ComicsDir.comics_entries(@series).each do |d|
42
+ files_list.push(d) if File.file?("#{@series}/#{d}")
43
+ end
44
+
45
+ files_list
46
+ end
47
+
48
+ def filter_alphanum_dirs
49
+ alphanum_dirs = []
50
+ list_directories.each do |d|
51
+ alphanum_dirs.push(d) if d =~ /[0-9]/ && d =~ /[a-z]/ || d =~ /[A-Z]/
52
+ end
53
+
54
+ alphanum_dirs
55
+ end
56
+
57
+ def filter_alpha_dirs
58
+ alpha_dirs = []
59
+ list_directories.each do |d|
60
+ alpha_dirs.push(d) if d =~ /[a-z]/ || d =~ /[A-Z]/
61
+ alpha_dirs.delete_if { |d| d =~ /[0-9]/ }
62
+ end
63
+
64
+ alpha_dirs
65
+ end
66
+
67
+ def filter_num_dirs
68
+ num_dirs = []
69
+ list_directories.each do |d|
70
+ num_dirs.push(d) if d =~ /[0-9]/
71
+ num_dirs.delete_if { |d| d =~ /[a-z]/ || d =~ /[A-Z]/ }
72
+ end
73
+
74
+ num_dirs
75
+ end
76
+ end
77
+ end
78
+
79
+ # This class is kept here for backwards compadibity with older versions.
2
80
  class ComicsDir
3
81
  def initialize(series)
82
+ warn "[DEPRECATION] `ComicsDir.new(series)` is deprecated. Please use `WebComics::ComicsDir.new` instead."
4
83
  @series = series
5
84
  end
6
85
 
7
86
  def comics_entries(dir)
87
+ warn "[DEPRECATION] `ComicsDir#comics_entries(dir)` is deprecated. Please use `WebComics::ComicsDir.comics_entries(dir)` instead."
8
88
  entries = Dir.entries(dir)
9
89
  entries.delete(".")
10
90
  entries.delete("..")
@@ -13,6 +93,7 @@ class ComicsDir
13
93
  end
14
94
 
15
95
  def trim(entries)
96
+ warn "[DEPRECATION] `ComicsDir#trim(entries)` is deprecated. Please use `WebComics::ComicsDir.trim(entries)` instead."
16
97
  trimed_entries = []
17
98
  entries.each do |e|
18
99
  trimed_entries.push(File.basename(e, ".*"))
@@ -22,10 +103,12 @@ class ComicsDir
22
103
  end
23
104
 
24
105
  def directory?(dir)
106
+ warn "[DEPRECATION] `ComicsDir#directory?(dir)` is deprecated. Please use `WebComics::ComicsDir#directory?` instead."
25
107
  File.directory?(dir)
26
108
  end
27
109
 
28
110
  def list_directories(dir)
111
+ warn "[DEPRECATION] `ComicsDir#list_directories(dir)` is deprecated. Please use `WebComics::ComicsDir#list_directories` instead."
29
112
  dirs_list = []
30
113
  comics_entries("#{dir}/#{@series}").each do |d|
31
114
  dirs_list.push(d) if directory?("#{dir}/#{@series}/#{d}")
@@ -35,10 +118,12 @@ class ComicsDir
35
118
  end
36
119
 
37
120
  def file?(f)
121
+ warn "[DEPRECATION] `ComicsDir#file?(f)` is deprecated. Please use `WebComics::ComicsDir#file?` instead."
38
122
  File.file?(f)
39
123
  end
40
124
 
41
125
  def list_files(dir)
126
+ warn "[DEPRECATION] `ComicsDir#list_files(dir)` is deprecated. Please use `WebComics::ComicsDir#list_files` instead."
42
127
  files_list = []
43
128
  comics_entries(dir).each do |d|
44
129
  files_list.push(d) if file?("#{dir}/#{d}")
@@ -48,6 +133,7 @@ class ComicsDir
48
133
  end
49
134
 
50
135
  def filter_alphanum_dirs(dir)
136
+ warn "[DEPRECATION] `ComicsDir#filter_alphanum_dirs(dir)` is deprecated. Please use `WebComics::ComicsDir#filter_alphanum_dirs` instead."
51
137
  alphanum_dirs = []
52
138
  list_directories(dir).each do |d|
53
139
  alphanum_dirs.push(d) if d =~ /[0-9]/ && d =~ /[a-z]/ || d =~ /[A-Z]/
@@ -57,6 +143,7 @@ class ComicsDir
57
143
  end
58
144
 
59
145
  def filter_alpha_dirs(dir)
146
+ warn "[DEPRECATION] `ComicsDir#filter_alpha_dirs(dir)` is deprecated. Please use `WebComics::ComicsDir#filter_alpha_dirs` instead."
60
147
  alpha_dirs = []
61
148
  list_directories(dir).each do |d|
62
149
  alpha_dirs.push(d) if d =~ /[a-z]/ || d =~ /[A-Z]/
@@ -67,6 +154,7 @@ class ComicsDir
67
154
  end
68
155
 
69
156
  def filter_num_dirs(dir)
157
+ warn "[DEPRECATION] `ComicsDir#filter_num_dirs(dir)` is deprecated. Please use `WebComics::ComicsDir#filter_num_dirs` instead."
70
158
  num_dirs = []
71
159
  list_directories(dir).each do |d|
72
160
  num_dirs.push(d) if d =~ /[0-9]/
data/lib/comics_engine.rb CHANGED
@@ -1,42 +1,83 @@
1
- require_relative "comics_dir"
2
- require_relative "comics_db"
3
1
  require "fileutils"
4
2
 
3
+ module WebComics
4
+ class ComicsEngine < CBZ
5
+ FILE_EXT_ARRY = [".jpg", ".png", ".tiff", ".bmp", ".gif"]
6
+
7
+ def filter(entries)
8
+ entries.each_index do |i|
9
+ entries.delete_if { |e| e.include?(FILE_EXT_ARRY[i]) || e.include?("#") }
10
+ end
11
+ end
12
+
13
+ def assets_dirs
14
+ filter(ComicsDir.comics_entries(@series))
15
+ end
16
+
17
+ def list_pages_cbz
18
+ list_pages_inside.sort
19
+ end
20
+
21
+ def list_pages
22
+ if CBZ.cbz_or_zip?("#{@series}/#{@cbz}")
23
+ list_pages_cbz
24
+ else
25
+ img_list = []
26
+ FileUtils.cd(@series) do
27
+ ComicsDir.comics_entries(".").each do |e|
28
+ img_list.push(e) if File.extname(e) == ".jpg" || File.extname(e) == ".png"
29
+ end
30
+ end
31
+
32
+ img_list.sort
33
+ end
34
+ end
35
+
36
+ end
37
+ end
38
+
5
39
  class ComicsEngine
6
- def initialize(table_name, assets)
40
+ def initialize(table_name = nil, assets)
41
+ warn "[DEPRECATION] `ComicsEngine.new(table_name = nil, assets)` is deprecated. Please use `WebComics::ComicsEngine.new` instead."
7
42
  @table_name = table_name
8
43
  @assets = assets
9
44
  @comics_dir = ComicsDir.new(@assets)
10
45
  end
11
46
 
12
47
  def dbtable_assets_match?
48
+ warn "[DEPRECATION] `ComicsEngine#dbtable_assets_match?` is deprecated."
13
49
  ComicsDB.exists?(@table_name, @assets)
14
50
  end
15
51
 
16
52
  def add_appendage
53
+ warn "[DEPRECATION] `ComicsEngine#add_appendage` is deprecated."
17
54
  @o_assets = @assets
18
- @assets = "#{@assets}/#{@table_name}"
55
+ @assets = "#{@assets}/#{@table_name}"
19
56
  end
20
57
 
21
58
  def remove_appendage
59
+ warn "[DEPRECATION] `ComicsEngine#remove_appendage` is deprecated."
22
60
  @assets.slice(@o_assets)
23
61
  end
24
62
 
25
63
  def filter(entries)
64
+ warn "[DEPRECATION] `ComicsEngine#filter(entries)` is deprecated."
26
65
  entries.delete_if do |e|
27
66
  e.include?(".") || e.include?("#")
28
67
  end
29
68
  end
30
69
 
31
70
  def assets_dirs
71
+ warn "[DEPRECATION] `ComicsEngine#assets_dirs` is deprecated. Please use `WebComics::ComicsEngine#assets_dirs` instead."
32
72
  filter(@comics_dir.comics_entries(@assets))
33
73
  end
34
74
 
35
75
  def list_pages
76
+ warn "[DEPRECATION] `ComicsEngine#list_pages` is deprecated. Please use `WebComics::ComicsEngine#list_pages(file = "")` instead."
36
77
  img_list = []
37
78
  FileUtils.cd(@assets) do
38
79
  @comics_dir.comics_entries(".").each do |e|
39
- img_list.push(e) if File.extname(e) == ".jpg" || File.extname(e) == ".png"
80
+ img_list.push(e) if File.extname(e) == ".jpg" || File.extname(e) == ".png"
40
81
  end
41
82
  end
42
83
 
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module WebComics
2
+ VERSION = "1.1.0"
3
+ end
data/lib/webcomics.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require_relative "version"
1
2
  require_relative "comics_dir"
2
3
  require_relative "comics_db"
4
+ require_relative "comics_cbz"
3
5
  require_relative "comics_engine"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webcomics
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ralph Desir
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-04 00:00:00.000000000 Z
12
+ date: 2016-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -39,19 +39,35 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '3.3'
42
- description: A gem for creating framework agnostic web comics.
42
+ - !ruby/object:Gem::Dependency
43
+ name: rubyzip
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.1'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.1'
56
+ description: A gem for creating comic book reader websites.
43
57
  email: battleroundscool@gmail.com
44
58
  executables: []
45
59
  extensions: []
46
60
  extra_rdoc_files: []
47
61
  files:
62
+ - lib/comics_cbz.rb
48
63
  - lib/comics_db.rb
49
64
  - lib/comics_dir.rb
50
65
  - lib/comics_engine.rb
66
+ - lib/version.rb
51
67
  - lib/webcomics.rb
52
68
  homepage: https://github.com/Mav7/Ruby-WebComics
53
69
  licenses:
54
- - GPLv2
70
+ - GPL-2.0
55
71
  metadata: {}
56
72
  post_install_message:
57
73
  rdoc_options: []
@@ -69,9 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
85
  version: '0'
70
86
  requirements: []
71
87
  rubyforge_project:
72
- rubygems_version: 2.4.8
88
+ rubygems_version: 2.5.1
73
89
  signing_key:
74
90
  specification_version: 4
75
91
  summary: Ruby Web comics library
76
92
  test_files: []
77
- has_rdoc: