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.
@@ -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: []