scene-toolkit 0.2.0 → 0.2.1

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.
@@ -1,3 +1,5 @@
1
+ require 'zlib'
2
+
1
3
  module SceneToolkit
2
4
  class Release
3
5
  module Validations
@@ -8,43 +10,52 @@ module SceneToolkit
8
10
 
9
11
  def valid_checksum?
10
12
  @errors[:checksum], @warnings[:checksum] = [], []
11
-
12
13
  if sfv_files.any?
13
14
  sfv_files.each do |sfv|
14
- files_to_check = files.inject({ }) do |collection, file|
15
- collection[File.basename(file).downcase] = File.expand_path(file)
16
- collection
15
+ begin
16
+ validate_checksum(sfv)
17
+ rescue => e
18
+ @errors[:playlist] << e.message
17
19
  end
20
+ end
21
+ else
22
+ @errors[:checksum] << "No *.sfv files found"
23
+ end
24
+ @errors[:checksum].empty?
25
+ end
18
26
 
19
- matched_something = false
20
- File.read(sfv).split(/[\r\n]+/).each do |line|
21
- line.strip!
27
+ protected
22
28
 
23
- if (/(generated|raped)/i =~ line and not /MorGoTH/i =~ line)
24
- @warnings[:checksum] << "Possibly tampered SFV: #{line.strip}"
25
- end
29
+ def validate_checksum(sfv)
30
+ files_to_check = files.inject({ }) do |collection, file|
31
+ collection[File.basename(file).downcase] = File.expand_path(file)
32
+ collection
33
+ end
34
+
35
+ matched_something = false
36
+ File.read(sfv).split(/[\r\n]+/).each do |line|
37
+ line.strip!
38
+
39
+ if (/(generated|raped)/i =~ line and not /MorGoTH/i =~ line)
40
+ @warnings[:checksum] << "Possibly tampered SFV: #{line.strip}"
41
+ end
26
42
 
27
- if match = /^(.+?)\s+([\dA-Fa-f]{8})$/.match(line)
28
- matched_something = true
29
- filename, checksum = match.captures
30
- filename.strip!
31
- filename.downcase!
32
-
33
- if files_to_check.has_key?(filename)
34
- unless Zlib.crc32(File.read(files_to_check[filename])).eql?(checksum.hex)
35
- @errors[:checksum] << "File #{filename} is corrupted"
36
- end
37
- else
38
- @errors[:checksum] << "File #{filename} not found"
39
- end
43
+ if match = /^(.+?)\s+([\dA-Fa-f]{8})$/.match(line)
44
+ matched_something = true
45
+ filename, checksum = match.captures
46
+ filename.strip!
47
+ filename.downcase!
48
+
49
+ if files_to_check.has_key?(filename)
50
+ unless Zlib.crc32(File.read(files_to_check[filename])).eql?(checksum.hex)
51
+ @errors[:checksum] << "File #{filename} is corrupted"
40
52
  end
53
+ else
54
+ @errors[:checksum] << "File #{filename} not found"
41
55
  end
42
- @warnings[:checksum] << "No files to verify found" unless matched_something
43
56
  end
44
- else
45
- @errors[:checksum] << "No *.sfv files found"
46
57
  end
47
- @errors[:checksum].empty?
58
+ @warnings[:checksum] << "No files to verify found" unless matched_something
48
59
  end
49
60
  end
50
61
  end
@@ -1,6 +1,3 @@
1
- require 'digest/md5'
2
- require 'zlib'
3
-
4
1
  require 'scene_toolkit/release/helpers'
5
2
  require 'scene_toolkit/release/rename'
6
3
  require 'scene_toolkit/release/validations'
@@ -11,7 +8,7 @@ require 'scene_toolkit/release/validations/required_files'
11
8
 
12
9
  module SceneToolkit
13
10
  class Release
14
- attr_accessor :name, :path, :uid
11
+ attr_accessor :name, :path
15
12
  attr_accessor :errors, :warnings
16
13
 
17
14
  include Validations
@@ -26,7 +23,6 @@ module SceneToolkit
26
23
  def initialize(path)
27
24
  @path = File.expand_path(path)
28
25
  @name = File.basename(path)
29
- @uid = Digest::MD5.hexdigest(@name.downcase.gsub(/[^A-Z0-9]/i, ' ').gsub(/\s+/, ' '))
30
26
  @errors, @warnings = { }, { }
31
27
  end
32
28
 
data/lib/scene_toolkit.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SceneToolkit
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scene-toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- requirement: &2157064380 !ruby/object:Gem::Requirement
17
+ requirement: &2153049440 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 3.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2157064380
25
+ version_requirements: *2153049440
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: i18n
28
- requirement: &2157063960 !ruby/object:Gem::Requirement
28
+ requirement: &2153049020 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2157063960
36
+ version_requirements: *2153049020
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: colored
39
- requirement: &2157063480 !ruby/object:Gem::Requirement
39
+ requirement: &2153048560 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2157063480
47
+ version_requirements: *2153048560
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: optitron
50
- requirement: &2157063060 !ruby/object:Gem::Requirement
50
+ requirement: &2153048140 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2157063060
58
+ version_requirements: *2153048140
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: nestful
61
- requirement: &2157062640 !ruby/object:Gem::Requirement
61
+ requirement: &2153047720 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *2157062640
69
+ version_requirements: *2153047720
70
70
  description: Tool to assist scene MP3 library maintenance
71
71
  email:
72
72
  - knoopx@gmail.com