scene-toolkit 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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