ehbrs-tools 0.9.0 → 0.10.0
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 +4 -4
- data/lib/ehbrs/runner/videos/series/rename.rb +75 -0
- data/lib/ehbrs/runner/videos/series.rb +21 -0
- data/lib/ehbrs/tools/version.rb +1 -1
- data/lib/ehbrs/videos/series/rename/directory_group.rb +28 -0
- data/lib/ehbrs/videos/series/rename/file/basename_parser.rb +44 -0
- data/lib/ehbrs/videos/series/rename/file/options.rb +30 -0
- data/lib/ehbrs/videos/series/rename/file.rb +114 -0
- data/lib/ehbrs/videos/series/rename/line_result.rb +26 -0
- data/lib/ehbrs/videos/series/rename/line_result_group.rb +39 -0
- data/lib/ehbrs/videos/series/rename/results_builder.rb +32 -0
- data/lib/ehbrs/videos/series/rename/season_group.rb +39 -0
- data/lib/ehbrs/videos/series/rename.rb +13 -0
- data/lib/ehbrs/videos/series.rb +11 -0
- data/vendor/eac_ruby_utils/eac_ruby_utils.gemspec +1 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/extname.rb +30 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/extname_spec.rb +18 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffc4f5477aac7e6c40bc373d77e239599afaf91fe96f8f1b4c2248a4da8d7fa4
|
4
|
+
data.tar.gz: 7950f28d7c9222ce50c645cc4ee36c8be3e45bcaf89cc03cf8fcf1c6355cf88b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3179aedf31490fc080ff805c6418c38477a7a7575d18415a8081beba23162f7e42efbb50c553deb871df640d1fc1d2f997a4f53caaf39cdb7a453ded3a6f65fd
|
7
|
+
data.tar.gz: 0532f3b45ad4014d11dab09e5947c95da727a0422806ad29f9125011d7b0722fc94e3e89b1f8317aeed76cab96a5a857e08fb68c61785830e858ba925cd75b38
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_cli/default_runner'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'eac_ruby_utils/console/docopt_runner'
|
6
|
+
require 'ehbrs/videos/series/rename/file'
|
7
|
+
require 'ehbrs/videos/series/rename/file/options'
|
8
|
+
require 'ehbrs/videos/series/rename/results_builder'
|
9
|
+
|
10
|
+
module Ehbrs
|
11
|
+
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
12
|
+
class Videos < ::EacRubyUtils::Console::DocoptRunner
|
13
|
+
class Series < ::EacRubyUtils::Console::DocoptRunner
|
14
|
+
class Rename < ::EacRubyUtils::Console::DocoptRunner
|
15
|
+
include ::EacCli::DefaultRunner
|
16
|
+
include ::EacRubyUtils::Fs::Traversable
|
17
|
+
|
18
|
+
runner_definition do
|
19
|
+
desc 'Renomeia arquivos de séries.'
|
20
|
+
bool_opt '-r', '--recursive', 'Recursivo.'
|
21
|
+
bool_opt '-c', '--confirm', 'Confirmação a renomeação.'
|
22
|
+
arg_opt '-k', '--kernel', 'Determina o kernel para os nomes dos arquivos.'
|
23
|
+
arg_opt '-E', '--extension', 'Substitui a extensão dos arquivos.'
|
24
|
+
arg_opt '-e', '--episode-increment', 'Aumenta o número do episódio.'
|
25
|
+
pos_arg 'paths', repeat: true, optional: true
|
26
|
+
end
|
27
|
+
|
28
|
+
def run
|
29
|
+
banner
|
30
|
+
show_results
|
31
|
+
rename_files
|
32
|
+
end
|
33
|
+
|
34
|
+
def banner
|
35
|
+
infov 'Paths', paths.count
|
36
|
+
infov 'Files found', files.count
|
37
|
+
end
|
38
|
+
|
39
|
+
def files_uncached
|
40
|
+
@files = []
|
41
|
+
paths.each { |path| traverser_check_path(path) }
|
42
|
+
@files
|
43
|
+
end
|
44
|
+
|
45
|
+
def paths
|
46
|
+
options.fetch('<paths>').if_present(['.'])
|
47
|
+
end
|
48
|
+
|
49
|
+
def traverser_recursive
|
50
|
+
options.fetch('--recursive')
|
51
|
+
end
|
52
|
+
|
53
|
+
def traverser_check_file(path)
|
54
|
+
@files << ::Ehbrs::Videos::Series::Rename::File.new(path, series_file_options)
|
55
|
+
end
|
56
|
+
|
57
|
+
def series_file_options_uncached
|
58
|
+
::Ehbrs::Videos::Series::Rename::File::Options.new(options)
|
59
|
+
end
|
60
|
+
|
61
|
+
def show_results
|
62
|
+
::Ehbrs::Videos::Series::Rename::ResultsBuilder.new(files).show(0)
|
63
|
+
end
|
64
|
+
|
65
|
+
def rename_files
|
66
|
+
return unless series_file_options.confirm
|
67
|
+
|
68
|
+
infom 'Renaming files...'
|
69
|
+
files.each(&:rename)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_cli/default_runner'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'eac_ruby_utils/console/docopt_runner'
|
6
|
+
|
7
|
+
module Ehbrs
|
8
|
+
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
9
|
+
class Videos < ::EacRubyUtils::Console::DocoptRunner
|
10
|
+
class Series < ::EacRubyUtils::Console::DocoptRunner
|
11
|
+
include ::EacCli::DefaultRunner
|
12
|
+
require_sub __FILE__
|
13
|
+
|
14
|
+
runner_definition do
|
15
|
+
desc 'Ferramentas para seriados.'
|
16
|
+
subcommands
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/ehbrs/tools/version.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ehbrs/videos/series/rename/line_result_group'
|
4
|
+
require 'ehbrs/videos/series/rename/season_group'
|
5
|
+
|
6
|
+
module Ehbrs
|
7
|
+
module Videos
|
8
|
+
module Series
|
9
|
+
module Rename
|
10
|
+
class DirectoryGroup < LineResultGroup
|
11
|
+
def line_out
|
12
|
+
name.light_yellow
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
|
17
|
+
def child_key
|
18
|
+
:season
|
19
|
+
end
|
20
|
+
|
21
|
+
def child_class
|
22
|
+
::Ehbrs::Videos::Series::Rename::SeasonGroup
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ehbrs/videos/series/rename/line_result'
|
4
|
+
|
5
|
+
module Ehbrs
|
6
|
+
module Videos
|
7
|
+
module Series
|
8
|
+
module Rename
|
9
|
+
class File < ::Ehbrs::Videos::Series::Rename::LineResult
|
10
|
+
module BasenameParser
|
11
|
+
FORMATS = [{
|
12
|
+
format: /(\d+)(\d{2})(\d{2})/i,
|
13
|
+
build: ->(m) { { s: padding(m[1]), e: padding(m[2]) + '-' + padding(m[3]) } }
|
14
|
+
}, {
|
15
|
+
format: /s(\d+)e(\d+)-(\d+)/i,
|
16
|
+
build: ->(m) { { s: padding(m[1]), e: padding(m[2]) + '-' + padding(m[3]) } }
|
17
|
+
}, {
|
18
|
+
format: /(\d{1,2})\s*[^\d]\s*(\d{2})/i,
|
19
|
+
build: ->(m) { { s: padding(m[1]), e: padding(m[2]) } }
|
20
|
+
}, {
|
21
|
+
format: /(\d+)(\d{2})/i,
|
22
|
+
build: ->(m) { { s: padding(m[1]), e: padding(m[2]) } }
|
23
|
+
}, {
|
24
|
+
format: /(\d{2})/i,
|
25
|
+
build: ->(m) { { s: padding(1), e: padding(m[1]) } }
|
26
|
+
}].freeze
|
27
|
+
|
28
|
+
def self.padding(string)
|
29
|
+
string.to_s.rjust(2, '0')
|
30
|
+
end
|
31
|
+
|
32
|
+
def parse_uncached
|
33
|
+
FORMATS.each do |format|
|
34
|
+
m = format.fetch(:format).match(current_name)
|
35
|
+
return format.fetch(:build).call(m) if m
|
36
|
+
end
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ehbrs
|
4
|
+
module Videos
|
5
|
+
module Series
|
6
|
+
module Rename
|
7
|
+
class File
|
8
|
+
class Options
|
9
|
+
def initialize(docopt_runner_options)
|
10
|
+
@options = docopt_runner_options
|
11
|
+
end
|
12
|
+
|
13
|
+
%w[kernel confirm recursive extension].each do |method|
|
14
|
+
class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
|
15
|
+
def #{method}
|
16
|
+
@options.fetch('--#{method}')
|
17
|
+
end
|
18
|
+
RUBY_EVAL
|
19
|
+
end
|
20
|
+
|
21
|
+
def episode_increment
|
22
|
+
r = @options.fetch('--episode-increment')
|
23
|
+
r.present? ? r.to_i : 0
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/fs/extname'
|
4
|
+
require 'ostruct'
|
5
|
+
require_relative 'line_result'
|
6
|
+
require_relative 'file/basename_parser'
|
7
|
+
|
8
|
+
module Ehbrs
|
9
|
+
module Videos
|
10
|
+
module Series
|
11
|
+
module Rename
|
12
|
+
class File < ::Ehbrs::Videos::Series::Rename::LineResult
|
13
|
+
include ::Ehbrs::Videos::Series::Rename::File::BasenameParser
|
14
|
+
|
15
|
+
attr_reader :file, :options
|
16
|
+
|
17
|
+
def initialize(file, options)
|
18
|
+
@file = file
|
19
|
+
@options = options
|
20
|
+
@options = ::OpenStruct.new(options) if options.is_a?(::Hash)
|
21
|
+
end
|
22
|
+
|
23
|
+
def rename
|
24
|
+
target = ::File.expand_path(new_name, dirname)
|
25
|
+
return if ::File.exist?(target)
|
26
|
+
|
27
|
+
infov 'Renaming', @file
|
28
|
+
FileUtils.mv(@file, target)
|
29
|
+
end
|
30
|
+
|
31
|
+
def season
|
32
|
+
return '??' if parse.blank?
|
33
|
+
|
34
|
+
parse.fetch(:s)
|
35
|
+
end
|
36
|
+
|
37
|
+
def episode
|
38
|
+
return '??' if parse.blank?
|
39
|
+
|
40
|
+
parse.fetch(:e)
|
41
|
+
end
|
42
|
+
|
43
|
+
def dirname
|
44
|
+
d = @file
|
45
|
+
while d != '/'
|
46
|
+
d = ::File.dirname(d)
|
47
|
+
return ::File.expand_path(d) + '/' unless ::File.basename(d).starts_with?('_')
|
48
|
+
end
|
49
|
+
raise "series_dirname not found for #{@file}"
|
50
|
+
end
|
51
|
+
|
52
|
+
def line_out
|
53
|
+
"#{episode.green}: " + if new_name == current_name
|
54
|
+
current_name.light_black
|
55
|
+
else
|
56
|
+
"#{new_name} <= #{current_name}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def new_name
|
61
|
+
return "#{kernel}-s#{parse[:s]}e#{new_name_episodes}#{extension}" if parse.present?
|
62
|
+
|
63
|
+
current_name
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
|
68
|
+
def current_name
|
69
|
+
::File.expand_path(@file).gsub(/\A#{::Regexp.quote(dirname)}/, '')
|
70
|
+
end
|
71
|
+
|
72
|
+
def rename?
|
73
|
+
return false unless new_name
|
74
|
+
|
75
|
+
current_name != new_name
|
76
|
+
end
|
77
|
+
|
78
|
+
def kernel
|
79
|
+
options.kernel || kernel_from_directory_name ||
|
80
|
+
raise("Kernel undefined (File: #{@file})")
|
81
|
+
end
|
82
|
+
|
83
|
+
def kernel_from_directory_name
|
84
|
+
dir = ::File.basename(dirname).sub(/\([0-9]+\)/, '')
|
85
|
+
dir.split(/\W+/).select { |w| /\A[a-z0-9]/.match(w) }.map { |p| p[0].downcase }.join('')
|
86
|
+
end
|
87
|
+
|
88
|
+
def extension
|
89
|
+
return options.extension if options.extension
|
90
|
+
|
91
|
+
extension_by_directory || ::EacRubyUtils::Fs.extname2(current_name)
|
92
|
+
end
|
93
|
+
|
94
|
+
def extension_by_directory
|
95
|
+
r = ::File.dirname(current_name)
|
96
|
+
return nil if r == '.'
|
97
|
+
|
98
|
+
r.gsub(/\A_/, '.')
|
99
|
+
end
|
100
|
+
|
101
|
+
def source_episodes
|
102
|
+
parse[:e].split('-').map(&:to_i)
|
103
|
+
end
|
104
|
+
|
105
|
+
def new_name_episodes
|
106
|
+
source_episodes.map do |i|
|
107
|
+
(i + options.episode_increment).to_s.rjust(2, '0')
|
108
|
+
end.join('-')
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Ehbrs
|
6
|
+
module Videos
|
7
|
+
module Series
|
8
|
+
module Rename
|
9
|
+
class LineResult
|
10
|
+
enable_simple_cache
|
11
|
+
enable_console_speaker
|
12
|
+
|
13
|
+
def show(level)
|
14
|
+
out(padding_level(level) + line_out + "\n")
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def padding_level(level)
|
20
|
+
(' ' * level.to_i) + '* '
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'line_result'
|
4
|
+
|
5
|
+
module Ehbrs
|
6
|
+
module Videos
|
7
|
+
module Series
|
8
|
+
module Rename
|
9
|
+
class LineResultGroup < ::Ehbrs::Videos::Series::Rename::LineResult
|
10
|
+
attr_reader :name, :children
|
11
|
+
|
12
|
+
def initialize(name, files)
|
13
|
+
@name = name
|
14
|
+
@children = build_children(files)
|
15
|
+
end
|
16
|
+
|
17
|
+
def show(level)
|
18
|
+
super(level)
|
19
|
+
children.each do |child|
|
20
|
+
child.show(level + 1)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def build_children(files)
|
27
|
+
r = {}
|
28
|
+
files.each do |file|
|
29
|
+
key = file.send(child_key)
|
30
|
+
r[key] ||= []
|
31
|
+
r[key] << file
|
32
|
+
end
|
33
|
+
r.sort.map { |v| child_class.new(v[0], v[1]) }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ehbrs/videos/series/rename/directory_group'
|
4
|
+
require 'ehbrs/videos/series/rename/line_result_group'
|
5
|
+
|
6
|
+
module Ehbrs
|
7
|
+
module Videos
|
8
|
+
module Series
|
9
|
+
module Rename
|
10
|
+
class ResultsBuilder < LineResultGroup
|
11
|
+
def initialize(files)
|
12
|
+
super '', files
|
13
|
+
end
|
14
|
+
|
15
|
+
def line_out
|
16
|
+
'Groups: '.cyan + children.count.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
protected
|
20
|
+
|
21
|
+
def child_key
|
22
|
+
:dirname
|
23
|
+
end
|
24
|
+
|
25
|
+
def child_class
|
26
|
+
::Ehbrs::Videos::Series::Rename::DirectoryGroup
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'line_result'
|
4
|
+
|
5
|
+
module Ehbrs
|
6
|
+
module Videos
|
7
|
+
module Series
|
8
|
+
module Rename
|
9
|
+
class SeasonGroup < ::Ehbrs::Videos::Series::Rename::LineResult
|
10
|
+
attr_reader :season, :files
|
11
|
+
|
12
|
+
def initialize(season, files)
|
13
|
+
@season = season
|
14
|
+
@files = files.sort_by { |f| [f.episode] }
|
15
|
+
end
|
16
|
+
|
17
|
+
def line_out
|
18
|
+
'Season: '.cyan + "#{season} (#{first_episode} - #{last_episode})"
|
19
|
+
end
|
20
|
+
|
21
|
+
def show(level)
|
22
|
+
super
|
23
|
+
files.each { |file| file.show(level + 1) }
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def first_episode
|
29
|
+
files.first.episode
|
30
|
+
end
|
31
|
+
|
32
|
+
def last_episode
|
33
|
+
files.last.episode
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -20,5 +20,5 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.add_dependency 'colorize', '~> 0.8.1'
|
21
21
|
s.add_dependency 'docopt', '~> 0.6.1'
|
22
22
|
s.add_dependency 'net-ssh', '~> 4.2'
|
23
|
-
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.1'
|
23
|
+
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.1', '>= 0.1.1'
|
24
24
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacRubyUtils
|
4
|
+
module Fs
|
5
|
+
class << self
|
6
|
+
# A [File.extname] which find multiple extensions (Ex.: .tar.gz).
|
7
|
+
def extname(path, limit = -1)
|
8
|
+
recursive_extension(::File.basename(path), limit)
|
9
|
+
end
|
10
|
+
|
11
|
+
# Shortcut to +extname(2)+.
|
12
|
+
def extname2(path)
|
13
|
+
extname(path, 2)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def recursive_extension(basename, limit)
|
19
|
+
return '' if limit.zero?
|
20
|
+
|
21
|
+
m = /\A(.+)(\.[a-z][a-z0-9]*)\z/i.match(basename)
|
22
|
+
if m
|
23
|
+
"#{recursive_extension(m[1], limit - 1)}#{m[2]}"
|
24
|
+
else
|
25
|
+
''
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/fs/extname'
|
4
|
+
|
5
|
+
RSpec.describe ::EacRubyUtils::Fs do
|
6
|
+
describe '#extname' do
|
7
|
+
{
|
8
|
+
'After.Life.S01E01.WEBRip.x264-ION10.mp4' => '.mp4',
|
9
|
+
's01e01.en.srt' => '.en.srt',
|
10
|
+
's01e01.srt' => '.srt',
|
11
|
+
'/path/to/file.tar.gz' => '.tar.gz'
|
12
|
+
}.each do |source, expected|
|
13
|
+
context "when source is \"#{source}\"" do
|
14
|
+
it { expect(described_class.extname(source)).to eq(expected) }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ehbrs-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esquilo Azul Company
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: avm-tools
|
@@ -110,6 +110,8 @@ files:
|
|
110
110
|
- lib/ehbrs/runner/vg/wii.rb
|
111
111
|
- lib/ehbrs/runner/videos.rb
|
112
112
|
- lib/ehbrs/runner/videos/extract.rb
|
113
|
+
- lib/ehbrs/runner/videos/series.rb
|
114
|
+
- lib/ehbrs/runner/videos/series/rename.rb
|
113
115
|
- lib/ehbrs/runner/videos/unsupported.rb
|
114
116
|
- lib/ehbrs/self.rb
|
115
117
|
- lib/ehbrs/self/observers/used_space.rb
|
@@ -134,6 +136,16 @@ files:
|
|
134
136
|
- lib/ehbrs/videos/file.rb
|
135
137
|
- lib/ehbrs/videos/profiles/base.rb
|
136
138
|
- lib/ehbrs/videos/profiles/same_quality.rb
|
139
|
+
- lib/ehbrs/videos/series.rb
|
140
|
+
- lib/ehbrs/videos/series/rename.rb
|
141
|
+
- lib/ehbrs/videos/series/rename/directory_group.rb
|
142
|
+
- lib/ehbrs/videos/series/rename/file.rb
|
143
|
+
- lib/ehbrs/videos/series/rename/file/basename_parser.rb
|
144
|
+
- lib/ehbrs/videos/series/rename/file/options.rb
|
145
|
+
- lib/ehbrs/videos/series/rename/line_result.rb
|
146
|
+
- lib/ehbrs/videos/series/rename/line_result_group.rb
|
147
|
+
- lib/ehbrs/videos/series/rename/results_builder.rb
|
148
|
+
- lib/ehbrs/videos/series/rename/season_group.rb
|
137
149
|
- lib/ehbrs/videos/track.rb
|
138
150
|
- lib/ehbrs/videos/unsupported/check_result.rb
|
139
151
|
- lib/ehbrs/videos/unsupported/check_set.rb
|
@@ -206,6 +218,7 @@ files:
|
|
206
218
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env.rb
|
207
219
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/filesystem_cache.rb
|
208
220
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/fs.rb
|
221
|
+
- vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/extname.rb
|
209
222
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/temp.rb
|
210
223
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/directory.rb
|
211
224
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/file.rb
|
@@ -275,6 +288,7 @@ files:
|
|
275
288
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/executable_spec.rb
|
276
289
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/ssh_env_spec.rb
|
277
290
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/filesystem_cache_spec.rb
|
291
|
+
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/extname_spec.rb
|
278
292
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp/temp_spec.rb
|
279
293
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp_spec.rb
|
280
294
|
- vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/listable_spec.rb
|