mangos 0.2 → 0.4

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
  SHA256:
3
- metadata.gz: e01364f1fa0fbcc49c64794424dd000d1bfd3a9ecb54a0f6470b36f322eb1616
4
- data.tar.gz: 7361915aa667121ba302fd474562705b94ffc4f9b9a3b5c45f4c2adc3632f5ae
3
+ metadata.gz: 3f9ac32132cd1ca0d0d5f8a3f7cb3290aadf01c6589223dca1f08e8dc07362a8
4
+ data.tar.gz: c2a88d97fd983b65c25eeac47678430f91713d1db5272177ba4e0175271dd83d
5
5
  SHA512:
6
- metadata.gz: 7135a8d489d0de60927f502fa0f16e08306c5222184cbbba57fba71a3f9144af01f42d34fe6e13922a11b61a76496e2cade6f12546f4e828bc9433e99c8dcc43
7
- data.tar.gz: 4183dc1045304d17062833cfa6a40f5ad30fa3f9a49000e5a34fde5003047189813690c2d6862cd36b4a1d78ceede5251ae174c946fa69420fd3355b847696e9
6
+ metadata.gz: 7b8f20c53a4d8fb71e8009250102507ceb9b915c6f0def70dd18bc17fab75f27ec2e219593c3c804cf6313aa87f085474d5668efe15799438599533318ea2dda
7
+ data.tar.gz: 257aa94d37ea85f291ee490d4158e614357bab6aaf9bafe71b6cee442e24b21c8a52e7d2769880a4288da428f1fe1aa809c625b442875754c6a12af6a0bfdbd4
data/bin/mangos CHANGED
@@ -8,6 +8,7 @@ OptionParser.new do |opts|
8
8
  opts.banner = "Usage: #{File.basename(__FILE__)} [options] [manga package directory root]"
9
9
 
10
10
  opts.on("-f", "--force", "Process all books in the package, even ones that seem up to date")
11
+ opts.on("-m", "--migrate", "Migrate package that incorrectly used the full pathnames to generate the book keys")
11
12
 
12
13
  opts.on("-h", "--help", "Prints this help") do
13
14
  puts opts
data/lib/mangos/book.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  class Mangos::Book
2
- attr_accessor :path, :page_paths, :pages, :published_on, :key, :tags
2
+ attr_accessor :path, :page_paths, :pages, :published_on, :old_key, :key, :tags
3
3
 
4
4
  def from_hash(hash)
5
5
  @path = hash["path"]
@@ -10,13 +10,15 @@ class Mangos::BookUpdater
10
10
  def update
11
11
  page_paths = find_page_paths
12
12
 
13
- @book.key = Digest::SHA256.hexdigest(@path.to_s)[0..16]
13
+ @book.old_key = @book.key
14
+ @book.key = Digest::SHA256.hexdigest(@path.basename.to_s)[0..16]
14
15
  @book.page_paths = build_page_paths(page_paths)
15
16
  @book.pages = page_paths.length
16
17
  @book.path = @path.basename.to_s
17
18
  @book.published_on = @path.mtime.to_i
18
19
  @book.tags = Mangos::TagBreaker.new(@book.path).tags
19
20
 
21
+ fix_thumbnail_path if @package.migrate?
20
22
  Mangos::Thumbnailer.new(page_paths.first, thumbnail_path).generate
21
23
  end
22
24
 
@@ -32,4 +34,11 @@ class Mangos::BookUpdater
32
34
  def thumbnail_path
33
35
  @package.thumbnails_path + "#{@book.key}.jpg"
34
36
  end
37
+
38
+ def fix_thumbnail_path
39
+ old_thumbnail_path = @package.thumbnails_path + "#{@book.old_key}.jpg"
40
+ if old_thumbnail_path.exist? && !thumbnail_path.exist?
41
+ old_thumbnail_path.rename(thumbnail_path)
42
+ end
43
+ end
35
44
  end
@@ -1,6 +1,6 @@
1
1
  class DecoratedPathname < Pathname
2
2
  def image?
3
- file? && extname && %w(.jpg .jpeg .png .gif).include?(extname.downcase)
3
+ file? && extname && %w(.jpg .jpeg .png .gif .webp).include?(extname.downcase)
4
4
  end
5
5
 
6
6
  def hidden?
@@ -23,6 +23,10 @@ class Mangos::Package
23
23
  app_path + "data.json"
24
24
  end
25
25
 
26
+ def key_mapping_path
27
+ app_path + "key_mapping.json"
28
+ end
29
+
26
30
  def thumbnails_path
27
31
  app_path + "img/thumbnails/"
28
32
  end
@@ -30,4 +34,8 @@ class Mangos::Package
30
34
  def force?
31
35
  @options[:force]
32
36
  end
37
+
38
+ def migrate?
39
+ @options[:migrate]
40
+ end
33
41
  end
@@ -9,11 +9,18 @@ class Mangos::Processor
9
9
  end
10
10
 
11
11
  def update(path, book)
12
- return false if !@package.force? && path.mtime < @original_mtime
12
+ return false if !update?(path, book)
13
13
  Mangos::BookUpdater.new(@package, book, path).update
14
14
  true
15
15
  end
16
16
 
17
+ def update?(path, book)
18
+ return true if @package.force?
19
+ return true if path.mtime >= @original_mtime
20
+ return true if book.pages == 0
21
+ false
22
+ end
23
+
17
24
  def delete(book)
18
25
  end
19
26
  end
data/lib/mangos/update.rb CHANGED
@@ -12,6 +12,7 @@ class Mangos::Update
12
12
  load_data
13
13
  process
14
14
  save_data
15
+ save_key_mapping if @package.migrate?
15
16
  puts "Done!"
16
17
  end
17
18
 
@@ -27,6 +28,11 @@ class Mangos::Update
27
28
  @package.data_path.write(@books.map { |b| b.to_hash }.to_json)
28
29
  end
29
30
 
31
+ def save_key_mapping
32
+ puts "Writing out key mapping JSON file"
33
+ @package.key_mapping_path.write(@books.to_h { |b| [b.old_key, b.key] }.to_json)
34
+ end
35
+
30
36
  def process
31
37
  puts "Processing books...\n"
32
38
 
@@ -1,3 +1,3 @@
1
1
  module Mangos
2
- VERSION = "0.2"
2
+ VERSION = "0.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mangos
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brenton "B-Train" Fletcher
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-25 00:00:00.000000000 Z
11
+ date: 2023-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  - !ruby/object:Gem::Version
118
118
  version: 1.3.6
119
119
  requirements: []
120
- rubygems_version: 3.0.3
120
+ rubygems_version: 3.3.7
121
121
  signing_key:
122
122
  specification_version: 4
123
123
  summary: Mangos indexes a collection of manga or comis and generates a SPA that browses