tvshow_renamer 0.2 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/tvshow_renamer/cli.rb +8 -3
- data/lib/tvshow_renamer/renamer.rb +12 -1
- data/lib/tvshow_renamer/version.rb +1 -1
- data/lib/tvshow_renamer.rb +2 -1
- metadata +1 -1
data/lib/tvshow_renamer/cli.rb
CHANGED
@@ -7,14 +7,19 @@ module TVShowRenamer
|
|
7
7
|
opts = OptionParser.new do |opts|
|
8
8
|
opts.banner = "Usage: tvshow_renamer [options] <tvshow_name> file|directory ..."
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
opts.on("-l", "--log FILENAME", "Log all renames to FILENAME, inside the TV show files directory") do |log_file|
|
11
|
+
options[:log_file] = log_file
|
12
|
+
end
|
13
13
|
|
14
14
|
opts.on_tail("-h", "--help", "Show this message") do
|
15
15
|
puts opts
|
16
16
|
exit
|
17
17
|
end
|
18
|
+
|
19
|
+
opts.on_tail("--version", "Show version") do
|
20
|
+
puts TVShowRenamer::VERSION
|
21
|
+
exit
|
22
|
+
end
|
18
23
|
end
|
19
24
|
opts.parse!
|
20
25
|
|
@@ -38,6 +38,7 @@ module TVShowRenamer
|
|
38
38
|
extension = File.extname(filename)
|
39
39
|
|
40
40
|
if EXTENSIONS.include?(extension.downcase)
|
41
|
+
dirname = File.dirname(filename)
|
41
42
|
basename = File.basename(filename)
|
42
43
|
detected_season, detected_episode = get_season_and_episode(basename)
|
43
44
|
|
@@ -52,7 +53,7 @@ module TVShowRenamer
|
|
52
53
|
rename_value = $stdin.gets.chomp.strip
|
53
54
|
case rename_value.downcase
|
54
55
|
when 'y'
|
55
|
-
new_filename = File.join(
|
56
|
+
new_filename = File.join(dirname, new_basename)
|
56
57
|
if File.exists?(new_filename)
|
57
58
|
override_ok = false
|
58
59
|
until override_ok
|
@@ -62,6 +63,7 @@ module TVShowRenamer
|
|
62
63
|
case override_value
|
63
64
|
when 'y'
|
64
65
|
FileUtils.mv filename, new_filename
|
66
|
+
log_rename dirname, basename, new_basename
|
65
67
|
override_ok = true
|
66
68
|
rename_ok = true
|
67
69
|
when 'n'
|
@@ -70,6 +72,7 @@ module TVShowRenamer
|
|
70
72
|
end
|
71
73
|
else
|
72
74
|
FileUtils.mv filename, new_filename
|
75
|
+
log_rename dirname, basename, new_basename
|
73
76
|
rename_ok = true
|
74
77
|
end
|
75
78
|
when 'n'
|
@@ -84,6 +87,14 @@ module TVShowRenamer
|
|
84
87
|
end
|
85
88
|
end
|
86
89
|
|
90
|
+
def log_rename(dirname, basename, new_basename)
|
91
|
+
if @options[:log_file]
|
92
|
+
File.open(File.join(dirname, @options[:log_file]), 'a') do |file|
|
93
|
+
file.puts "\"#{basename}\" => \"#{new_basename}\"\n"
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
87
98
|
def get_season_and_episode(basename)
|
88
99
|
regex = /(?<season>\d{1,2})(e|x|\.)?(?<episode>\d{2,})/i
|
89
100
|
match = regex.match basename
|
data/lib/tvshow_renamer.rb
CHANGED