tv_renamer 4.0.2
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 +7 -0
- data/LICENSE +340 -0
- data/README.md +2 -0
- data/bin/tv_renamer +6 -0
- data/lib/tv_renamer/ini.rb +267 -0
- data/lib/tv_renamer/renamer.rb +646 -0
- data/lib/tv_renamer.rb +2 -0
- data/test/testrenamer.rb +170 -0
- metadata +65 -0
data/test/testrenamer.rb
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
count = 0
|
|
4
|
+
if File::exist?("test.ini")
|
|
5
|
+
File::delete("test.ini")
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
File.open("test.ini", "w") do |file|
|
|
9
|
+
|
|
10
|
+
file << "# This is a comment\n"
|
|
11
|
+
file << "mask = %show% - %season% - %epnumber% - %episode%\n"
|
|
12
|
+
|
|
13
|
+
file << "[charmedaholic]\n"
|
|
14
|
+
file << "url = Charmed\n"
|
|
15
|
+
file << "customname = Charmed\n"
|
|
16
|
+
|
|
17
|
+
file << "[athf]\n"
|
|
18
|
+
file << "customname = Aqua Teen Hunger Force\n"
|
|
19
|
+
file << "url = AquaTeenHungerForce\n"
|
|
20
|
+
file << "mask = %show% - %season% - %epnumber% - %code% - %date% - %episode%\n"
|
|
21
|
+
|
|
22
|
+
file << "[sponge]\n"
|
|
23
|
+
file << "dateformat = %m-%d-%Y\n"
|
|
24
|
+
file << "url = SpongeBobSquarePants\n"
|
|
25
|
+
file << "mask = %show% - %season% - %epnumber% - %date%\n"
|
|
26
|
+
|
|
27
|
+
file << "[knight rider 2008]\n"
|
|
28
|
+
file << "url = KnightRider_2008\n"
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
tests = Hash.new
|
|
33
|
+
# season and episode are seperated by an 'x'
|
|
34
|
+
tests["colbert.report.2x1.avi"] = "Colbert Report - 2 - 01 - Nancy Grace.avi"
|
|
35
|
+
tests["colbert.report.2x10.avi"] = "Colbert Report - 2 - 10 - Robin Givhan.avi"
|
|
36
|
+
tests["colbert.report.2x100.avi"] = "Colbert Report - 2 - 100 - Bill Rhoden.avi"
|
|
37
|
+
tests["colbert.report.04x1.avi"] = "Colbert Report - 4 - 01 - Andrew Sullivan, Richard Freeman.avi"
|
|
38
|
+
tests["colbert.report.04x10.avi"] = "Colbert Report - 4 - 10 - Malcolm Gladwell, Andrew Young.avi"
|
|
39
|
+
tests["colbert.report.04x100.avi"] = "Colbert Report - 4 - 100 - David Carr.avi"
|
|
40
|
+
|
|
41
|
+
tests["colbert.report.4X2.avi"] = "Colbert Report - 4 - 02 - Chris Beam, Gary Rosen.avi"
|
|
42
|
+
tests["colbert.report.4X11.avi"] = "Colbert Report - 4 - 11 - Marie Wood, Jeb Corliss, Andrew McLean.avi"
|
|
43
|
+
tests["colbert.report.4X101.avi"] = "Colbert Report - 4 - 101 - Jason Bond, Kevin Costner.avi"
|
|
44
|
+
tests["colbert.report.04X3.avi"] = "Colbert Report - 4 - 03 - Gov. Mike Huckabee, Matt Taibbi.avi"
|
|
45
|
+
tests["colbert.report.04X12.avi"] = "Colbert Report - 4 - 12 - Debra Dickerson, Charles Nesson.avi"
|
|
46
|
+
tests["colbert.report.04X102.avi"] = "Colbert Report - 4 - 102 - Devin Gordon, Thomas Frank.avi"
|
|
47
|
+
|
|
48
|
+
# season and episode prefix
|
|
49
|
+
tests["colbert.report.s02e2.avi"] = "Colbert Report - 2 - 02 - Carl Bernstein.avi"
|
|
50
|
+
tests["colbert.report.s02e12.avi"] = "Colbert Report - 2 - 12 - Paul Begala.avi"
|
|
51
|
+
tests["colbert.report.s02e102.avi"] = "Colbert Report - 2 - 102 - Eli Pariser.avi"
|
|
52
|
+
tests["colbert.report.s2e3.avi"] = "Colbert Report - 2 - 03 - John Stossel.avi"
|
|
53
|
+
tests["colbert.report.s2e13.avi"] = "Colbert Report - 2 - 13 - Annie Duke.avi"
|
|
54
|
+
tests["colbert.report.s2e103.avi"] = "Colbert Report - 2 - 103 - Ramesh Ponnuru.avi"
|
|
55
|
+
|
|
56
|
+
tests["colbert.report.S02e4.avi"] = "Colbert Report - 2 - 04 - Ken Miller.avi"
|
|
57
|
+
tests["colbert.report.S02e14.avi"] = "Colbert Report - 2 - 14 - Dave Marash.avi"
|
|
58
|
+
tests["colbert.report.s02e104.avi"] = "Colbert Report - 2 - 104 - David Gergen.avi"
|
|
59
|
+
tests["colbert.report.S2e5.avi"] = "Colbert Report - 2 - 05 - George Stephanopoulos.avi"
|
|
60
|
+
tests["colbert.report.S2e15.avi"] = "Colbert Report - 2 - 15 - Emily Yoffe.avi"
|
|
61
|
+
tests["colbert.report.S2e105.avi"] = "Colbert Report - 2 - 105 - Morgan Spurlock.avi"
|
|
62
|
+
|
|
63
|
+
tests["colbert.report.s02E6.avi"] = "Colbert Report - 2 - 06 - Andrew Sullivan.avi"
|
|
64
|
+
tests["colbert.report.s02E16.avi"] = "Colbert Report - 2 - 16 - Gov. Christine Todd Whitman.avi"
|
|
65
|
+
tests["colbert.report.s02E106.avi"] = "Colbert Report - 2 - 106 - Neil Young.avi"
|
|
66
|
+
tests["colbert.report.s2E7.avi"] = "Colbert Report - 2 - 07 - Frank McCourt.avi"
|
|
67
|
+
tests["colbert.report.s2E17.avi"] = "Colbert Report - 2 - 17 - Barbara Boxer.avi"
|
|
68
|
+
tests["colbert.report.s2E107.avi"] = "Colbert Report - 2 - 107 - Geoffrey Nunberg.avi"
|
|
69
|
+
|
|
70
|
+
tests["colbert.report.S02E8.avi"] = "Colbert Report - 2 - 08 - Nina Totenberg.avi"
|
|
71
|
+
tests["colbert.report.S02E18.avi"] = "Colbert Report - 2 - 18 - R. James Woolsey.avi"
|
|
72
|
+
tests["colbert.report.S02E108.avi"] = "Colbert Report - 2 - 108 - Paul Krugman.avi"
|
|
73
|
+
tests["colbert.report.S2E9.avi"] = "Colbert Report - 2 - 09 - David Gregory.avi"
|
|
74
|
+
tests["colbert.report.S2E19.avi"] = "Colbert Report - 2 - 19 - Alan Dershowitz.avi"
|
|
75
|
+
tests["colbert.report.S2E109.avi"] = "Colbert Report - 2 - 109 - Gideon Yago.avi"
|
|
76
|
+
|
|
77
|
+
# season and episode are seperate tokens
|
|
78
|
+
tests["colbert.report.s03.e1.avi"] = "Colbert Report - 3 - 01 - Ethan Nadelmann.avi"
|
|
79
|
+
tests["colbert.report.s02.e20.avi"] = "Colbert Report - 2 - 20 - George Packer.avi"
|
|
80
|
+
tests["colbert.report.s02.e110.avi"] = "Colbert Report - 2 - 110 - Janna Levin.avi"
|
|
81
|
+
tests["colbert.report.s3.e2.avi"] = "Colbert Report - 3 - 02 - Jim Cramer.avi"
|
|
82
|
+
tests["colbert.report.s2.e21.avi"] = "Colbert Report - 2 - 21 - Lama Surya Das.avi"
|
|
83
|
+
tests["colbert.report.s2.e111.avi"] = "Colbert Report - 2 - 111 - Martin Short.avi"
|
|
84
|
+
|
|
85
|
+
tests["colbert.report.S03.e3.avi"] = "Colbert Report - 3 - 03 - David Kamp.avi"
|
|
86
|
+
tests["colbert.report.S02.e22.avi"] = "Colbert Report - 2 - 22 - Michael Eric Dyson.avi"
|
|
87
|
+
tests["colbert.report.s02.e112.avi"] = "Colbert Report - 2 - 112 - Toby Keith.avi"
|
|
88
|
+
tests["colbert.report.S3.e4.avi"] = "Colbert Report - 3 - 04 - Judy Woodruff.avi"
|
|
89
|
+
tests["colbert.report.S2.e23.avi"] = "Colbert Report - 2 - 23 - David Brooks.avi"
|
|
90
|
+
tests["colbert.report.S2.e113.avi"] = "Colbert Report - 2 - 113 - Ken Jennings.avi"
|
|
91
|
+
|
|
92
|
+
tests["colbert.report.s03.E5.avi"] = "Colbert Report - 3 - 05 - Alex Kuczynski.avi"
|
|
93
|
+
tests["colbert.report.s02.E24.avi"] = "Colbert Report - 2 - 24 - Tony Campolo.avi"
|
|
94
|
+
tests["colbert.report.s02.E114.avi"] = "Colbert Report - 2 - 114 - Bill Simmons.avi"
|
|
95
|
+
tests["colbert.report.s3.E6.avi"] = "Colbert Report - 3 - 06 - Dinesh D'Souza.avi"
|
|
96
|
+
tests["colbert.report.s2.E25.avi"] = "Colbert Report - 2 - 25 - Brett O'Donnell.avi"
|
|
97
|
+
tests["colbert.report.s2.E115.avi"] = "Colbert Report - 2 - 115 - Will Power.avi"
|
|
98
|
+
|
|
99
|
+
tests["colbert.report.S03.E7.avi"] = "Colbert Report - 3 - 07 - Richard Clarke.avi"
|
|
100
|
+
tests["colbert.report.S02.E26.avi"] = "Colbert Report - 2 - 26 - Arianna Huffington.avi"
|
|
101
|
+
tests["colbert.report.S02.E116.avi"] = "Colbert Report - 2 - 116 - Frank Rich.avi"
|
|
102
|
+
tests["colbert.report.S3.E8.avi"] = "Colbert Report - 3 - 08 - Bill O'Reilly.avi"
|
|
103
|
+
tests["colbert.report.S2.E27.avi"] = "Colbert Report - 2 - 27 - Jeffrey Sachs.avi"
|
|
104
|
+
tests["colbert.report.S2.E117.avi"] = "Colbert Report - 2 - 117 - James Carville.avi"
|
|
105
|
+
|
|
106
|
+
# all as one glob of numbers
|
|
107
|
+
tests["colbert.report.0408.avi"] = "Colbert Report - 4 - 08 - Lou Dobbs, David Levy.avi"
|
|
108
|
+
tests["colbert.report.0499.avi"] = "Colbert Report - 4 - 99 - Lucas Conley, The Apples in Stereo.avi"
|
|
109
|
+
tests["colbert.report.409.avi"] = "Colbert Report - 4 - 09 - Allan Sloan, Eric Weiner.avi"
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
# special cases
|
|
113
|
+
tests["knight.rider.2008.0101.avi"] = "Knight Rider 2008 - 1 - 01 - A Knight in Shining Armor.avi"
|
|
114
|
+
tests["knight.rider.2008.104.avi"] = "Knight Rider 2008 - 1 - 04 - A Hard Day's Knight.avi"
|
|
115
|
+
tests["sealab.2021.0201.avi"] = "Sealab 2021 - 2 - 01 - Der Dieb.avi"
|
|
116
|
+
tests["sealab.2021.205.avi"] = "Sealab 2021 - 2 - 05 - Legend of Baggy Pants.avi"
|
|
117
|
+
tests["the.4400.0201.avi"] = "The 4400 - 2 - 01 - Wake-Up Call (1).avi"
|
|
118
|
+
tests["the.4400.205.avi"] = "The 4400 - 2 - 05 - Suffer The Children.avi"
|
|
119
|
+
tests["the.oblongs.1x11.avi"] = "The Oblongs - 1 - 11 - Bucketheads.avi"
|
|
120
|
+
tests["mork.and.mindy.1x21.avi"] = "Mork And Mindy - 1 - 21 - Mork's Night Out.avi"
|
|
121
|
+
|
|
122
|
+
# custom renaming
|
|
123
|
+
tests["charmedaholic.1x1.avi"] = "Charmed - 1 - 01 - Something Wicca This Way Comes.avi"
|
|
124
|
+
tests["athf.1x18.avi"] = "Aqua Teen Hunger Force - 1 - 18 - 118 - 29-Dec-02 - Cybernetic Ghost Of Christmas Past From The Future.avi"
|
|
125
|
+
tests["Sponge.4x18.avi"] = "Sponge - 4 - 18 - 05-05-2006.avi"
|
|
126
|
+
|
|
127
|
+
tests.each do |test, expected|
|
|
128
|
+
system("touch " + test)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
`tv_renamer -i test.ini`
|
|
132
|
+
|
|
133
|
+
tests.each do |test, expected|
|
|
134
|
+
if !File::exist?(expected)
|
|
135
|
+
count += 1
|
|
136
|
+
puts "#{test} failed to rename to #{expected}"
|
|
137
|
+
else
|
|
138
|
+
File::delete(expected)
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
tests.each do |test, expected|
|
|
143
|
+
newtest = test.dup
|
|
144
|
+
newtest.gsub!('.', ' ')
|
|
145
|
+
newtest[newtest.rindex(' ')] = '.'
|
|
146
|
+
system("touch \"" + newtest + "\"")
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
`tv_renamer -i test.ini`
|
|
150
|
+
|
|
151
|
+
tests.each do |test, expected|
|
|
152
|
+
newtest = test.dup
|
|
153
|
+
newtest.gsub!('.', ' ')
|
|
154
|
+
newtest[newtest.rindex(' ')] = '.'
|
|
155
|
+
if !File::exist?(expected)
|
|
156
|
+
count += 1
|
|
157
|
+
print newtest + " failed to rename properly\n"
|
|
158
|
+
else
|
|
159
|
+
File::delete(expected)
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
if count == 0
|
|
164
|
+
print "All #{tests.length * 2} tests passed!\n"
|
|
165
|
+
else
|
|
166
|
+
print "#{count} tests of #{tests.length * 2} failed\n"
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
File::delete("test.ini")
|
metadata
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: tv_renamer
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 4.0.2
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Kevin Adler
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2015-02-15 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: nokogiri
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ~>
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ~>
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.0'
|
|
27
|
+
description: A tool to rename TV shows using data from epguides.com
|
|
28
|
+
email: zeke@zekesdominion.com
|
|
29
|
+
executables:
|
|
30
|
+
- tv_renamer
|
|
31
|
+
extensions: []
|
|
32
|
+
extra_rdoc_files: []
|
|
33
|
+
files:
|
|
34
|
+
- LICENSE
|
|
35
|
+
- README.md
|
|
36
|
+
- bin/tv_renamer
|
|
37
|
+
- lib/tv_renamer.rb
|
|
38
|
+
- lib/tv_renamer/ini.rb
|
|
39
|
+
- lib/tv_renamer/renamer.rb
|
|
40
|
+
- test/testrenamer.rb
|
|
41
|
+
homepage: https://github.com/adler187/tvrenamer
|
|
42
|
+
licenses:
|
|
43
|
+
- GPL-2
|
|
44
|
+
metadata: {}
|
|
45
|
+
post_install_message:
|
|
46
|
+
rdoc_options: []
|
|
47
|
+
require_paths:
|
|
48
|
+
- lib
|
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - '>='
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
|
+
requirements:
|
|
56
|
+
- - '>='
|
|
57
|
+
- !ruby/object:Gem::Version
|
|
58
|
+
version: '0'
|
|
59
|
+
requirements: []
|
|
60
|
+
rubyforge_project:
|
|
61
|
+
rubygems_version: 2.4.6
|
|
62
|
+
signing_key:
|
|
63
|
+
specification_version: 4
|
|
64
|
+
summary: TV Show Renamer
|
|
65
|
+
test_files: []
|