Mercurial > ec-dotfiles
annotate bin/ren @ 52:d07ce874a280
[bash] securing test. Should use bashism but I hate bashism.
author | Edho Prima Arief <me@myconan.net> |
---|---|
date | Wed, 27 Apr 2011 11:50:03 -0400 |
parents | 9a0cbfe1195b |
children | babf62f1bba7 |
rev | line source |
---|---|
4
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
1 #!/usr/bin/env perl |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
2 |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
3 use warnings; |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
4 use strict; |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
5 use File::Basename; |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
6 |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
7 my @files = @ARGV or print("Usage: ",basename($0)," file1 ... fileN\n") && exit(1); |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
8 my $skip=0; |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
9 foreach (@files) { |
36 | 10 print(qq(Could not find file "$_", skipping\n)) and next() unless -e $_; |
11 my $newname = $_; | |
12 #START HERE | |
13 $newname =~ s/_/ /g; | |
14 #TITLE AND NAMES | |
41 | 15 $newname =~ s/^\[Jumonji-Giri\]\[Soldats\]\[AonE&HQA\] D\.C\. Da Capo /[Jumonji-Giri] Da Capo /i; |
36 | 16 $newname =~ s/^PitaTen.* Ep (\d+) .*\.avi/[Hnk] Pita Ten - $1.avi/; |
17 $newname =~ s/^\[a-S\] Inuyasha - (\d+|\d+-\d+) /Inuyasha - $1 [a-S]/; | |
18 $newname =~ s/\[DVD\]\[AHQ\]/[AHQ][DVD]/; | |
19 $newname =~ s/^mars daybreak /[V-A] Mars Daybreak - /; | |
20 $newname =~ s/ Shuffle! Episode / Shuffle! /; | |
21 $newname =~ s/^\[ZA\]\.Saint\.Seiya\.Episode\.(\d+)\.DVDrip\.\[X264\.AAC\(Jpn-Fre\)\.Sub\(Fre-Eng\)\.Chap\]\.mkv$/[D-YFI] Saint Seiya - $1 [DVD].mkv/; | |
22 $newname =~ s/^HajimeNoIppo.*Round(\d+)-.*\(anime-mx\)/[Anime-MX] Fighting Spirit - $1 /; | |
23 $newname =~ s/^(\[ACX\])(Final Fantasy Unlimited) - (\d+) .*\[ALI\] /$1 $2 - $3 /; | |
24 $newname =~ s/^\[a-s\] inuyasha - (\d+-\d+) rs2 /[a-S] Inuyasha - $1 /; | |
25 $newname =~ s/^(\[Kira-Fansub\]) Uchuu no (Stellvia) /$1 $2 /; | |
26 $newname =~ s/^(\[RaX\])(Chobits) - (\d+`\d) .*\(x264 aac\) /$1 $2 - $3 /; | |
27 $newname =~ s/ Maria( |†)Holic / Maria+Holic /i; | |
28 $newname =~ s/^Legend of Galactic Heroes - (\d+) \(([A-F0-9]{8})\) \[Central Anime\]/[Central Anime] Legend of Galactic Heroes - $1 [$2]/; | |
29 $newname =~ s/\[Hnk\]/[HnK]/; | |
30 $newname =~ s/^Inuyasha - (\d+|\d+-\d+)\[167\] - .*(\[DVD\]\[AHQ\])/Inuyasha - $1 $2/; | |
31 $newname =~ s/^Saint Seiya Hades OVA - (\d+) \[(AonE-SpA|SpA)\]/[$2] Saint Seiya Hades OVA - $1/; | |
32 $newname =~ s/\[\d+\] Saint Seiya Hades OVA - (\d+)/[SpA] Saint Seiya Hades OVA - $1/; | |
33 $newname =~ s/ Digimon Tamers - (\d)\./ Digimon Tamers - 0$1./; | |
34 $newname =~ s/ Kore wa Zombie Desu ka / Kore wa Zombie desu ka /i; | |
35 $newname =~ s/ Infinite Stratos - IS - / Infinite Stratos - /; | |
36 $newname =~ s/\[Keroro\]\.(\d+)\.\[Xvid\.mp3\]\./[Keroro] Keroro Gunsou - $1 /i; | |
37 $newname =~ s/\[Keroro\] \.(\d+)\. \[\.mp3\] \. /[Keroro] Keroro Gunsou - $1 /i; | |
38 $newname =~ s/Shadow\.Star\.Narutaru\.(\d+)\.\(Dual\.Audio\)\.XVID\.\[AM\]/[AM] Narutaru - $1 /; | |
39 $newname =~ s/Outlaw Star Remastered E(\d+) .*'/ Outlaw Star - $1 /; | |
40 $newname =~ s/Ground Defense Force Mao-chan (\d+)\[h\.264-AAC\]\[SSP-Corp\]/[SSP-Corp] Mao-chan - $1 /; | |
41 $newname =~ s/Koi Kaze (\d+) \[NAG&anime fin\]/[NAG anime-fin] Koi Kaze - $1 /; | |
42 $newname =~ s/ Toradora - / Toradora! - /; | |
43 $newname =~ s/ Dragon Crisis / Dragon Crisis! /; | |
44 $newname =~ s/ Mao Chan / Mao-chan /; | |
45 $newname =~ s/^Arigatou\.Bleach\.(\d+)\.\[h264\.AAC\]/Bleach - $1 [Arigatou]/; | |
46 $newname =~ s/^Arigatou\.Bleach\.(\d+)\.\[x264\.AAC\]/Bleach - $1 [Arigatou]/; | |
47 $newname =~ s/^Arigatou\.Bleach\.(\d+)\. \[\.AAC\]/Bleach - $1 [Arigatou]/; | |
48 $newname =~ s/^Arigatou\.Bleach\.(\d+)v2\. \[\.AAC\]/Bleach - $1 [Arigatou][v2]/; | |
49 $newname =~ s/ Ep(\d+)v3 \[R2 Video\]/ - $1 [v3]/; | |
50 $newname =~ s/ Brighter Than The Dawning Blue - Crescent Love Ep(\d+) Subbed / Brigher Than The Dawning Blue - Crescent Love - $1 /; | |
51 $newname =~ s/ Brighter Than The Dawning Blue - Crescent Love - (\d+) Subbed / Brigher Than The Dawning Blue - Crescent Love - $1 /; | |
52 $newname =~ s/ Character Monologue 0/ Character Monologue /; | |
53 $newname =~ s/Ookami-san\.to\.Shichinin\.no\.Nakama-tachi\.EP(\d+)\(BD\.1080p\.AAC\)/Ookami-san - $1 [1080p BD]/; | |
54 $newname =~ s/Ore.?tachi ni tsubasa wa nai /Oretachi ni Tsubasa wa nai /i; | |
55 $newname =~ s/\[anime-rg . ray=out\]/[anime-rg ray=out]/; | |
56 $newname =~ s/^Arigatou\.Soul\.Eater\.Ep(\d+)\. \[x264\.AAC\]/[Arigatou] Soul Eater - $1 /; | |
57 $newname =~ s/^\[Doremi\]\.HeartCatch\.PreCure!\.(\d+)\.\[1280x720\]\./[Doremi] HeartCatch PreCure! - $1 [720p]/; | |
58 $newname =~ s/^\[Doremi-CureCom\]\.Suite\.PreCure!\.(\d+)\.\[1280x720\]\./[Doremi-CureCom] Suite PreCure! - $1 [720p]/; | |
59 $newname =~ s/^\[Doremi\]\.Motto\.Ojamajo\.Doremi\.(\d+)\./[Doremi] Motto Ojamajo Doremi - $1 /; | |
60 $newname =~ s/^\[HorribleSubs\] Lilpri /[HorribleSubs] Hime Chen! Otogi Chikku Idol Lilpri - /i; | |
61 $newname =~ s/^\[Jumonji-Giri\] \[AnY\]/[Jumonji-Giri]/; | |
62 $newname =~ s/\[(BWS|PM)\]Pocket Monsters Best Wishes (\d+) .+\[H264 /[$1] Pokemon Best Wishes - $2 [/; | |
63 $newname =~ s/ Ookiku Furikabutte - The Summer Tournament Chapter / Ookiku Furikabutte S2 /; | |
64 $newname =~ s/Les Miserables Shoujo Cosette /Les Miserables /; | |
65 $newname =~ s/\[Elysium\]Baka\.to\.Test\.to\.Shoukanjuu\.(EP)?/[Elysium] Baka to Test to Shokanju/; | |
66 $newname =~ s/\[Elysium\] Baka to Test to Shokanju/[Elysium] Baka to Test to Shokanju /; | |
67 $newname =~ s/\(BD\.1080p\.FLAC\)/[1080p BD]/; | |
68 $newname =~ s/Saizen & SD/Saizen-SD/; | |
69 $newname =~ s/Bleach - (\d{2}) /Bleach - 0$1 /; | |
70 $newname =~ s/Omamori Himari - ED \(Clean\) - 0(\d) / Omamori Himari - Ending $1 (Clean) /; | |
71 $newname =~ s/Omamori Himari - Opening \(Clean\) - (\d{2}) / Omamori Himari - Opening $1 (Clean) /; | |
72 $newname =~ s/\(B-A\)Great Teacher Onizuka - Lesson /[B-A] Great Teacher Onizuka - /; | |
73 $newname =~ s/Xam'd Lost Memories - (\d+) .* \[1080p,BluRay,,DTS\] - THORA\.mkv/[THORA] Xam'd Lost Memories - $1 [1080p BD].mkv/; | |
74 $newname =~ s/\(G P\) Escaflowne \(Remastered\)/[G_P] Escaflowne/; | |
75 $newname =~ s/SD&Taka/SD-Taka/; | |
76 $newname =~ s/Seikai no Senki/Banner of the Stars/; | |
77 $newname =~ s/Onii-chan no Koto \.\.\. /Onii-chan no Koto Nanka Zenzen Suki Janain Dakara ne /; | |
78 $newname =~ s/Onii-chan no Koto Nanka Zenzen Suki Janain Dakara ne /Onii-chan no Koto Nanka Zenzen Suki Janain Dakara ne!! /; | |
79 $newname =~ s/^Strawberry 100% - (\d+\.?\d*) \[ReDone-MDC\]/[ReDone-MDC] Strawberry 100% - $1 /; | |
80 $newname =~ s/^Strawberry 100% - OVA 0(\d+\.?\d*) \[ReDone-MDC\]/[ReDone-MDC] Strawberry 100% OVA - $1 /; | |
81 $newname =~ s/Dragonball Kai/Dragon Ball Kai/; | |
82 $newname =~ s/Natsu no Arashi - Akinai-chuu/Summer Storm! - Open for Business/; | |
83 $newname =~ s/Natsu no Arashi/Summer Storm!/; | |
84 $newname =~ s/Naruto (\d+-\d+) /Naruto - $1 /; | |
85 $newname =~ s/Lupin III Series 1 - (\d+) - .+ \[neo1024\]/[neo1024] Lupin III - $1 /; | |
86 $newname =~ s/Mitsudomoe Picture Drama - 0/Mitsudomoe Picture Drama - /; | |
87 $newname =~ s/Sora no Woto - ([^ ]+) \[BD 1080p\]\[AtsA\]/[AtsA] Sora no Woto - $1 [1080p BD]/; | |
88 $newname =~ s/Battle\.Programmer\.Shirase\./Battle Programmer Shirase /; | |
89 $newname =~ s/Battle Programmer Shirase - 0/Battle Programmer Shirase - /; | |
90 $newname =~ s/ Kuragehime / Princess Jellyfish /; | |
91 $newname =~ s/^\[OZC\]Code Geass Lelouch of the Rebellion R2 E(\d+) .*/[OZC] Code Geass R2 - $1.mkv/; | |
92 $newname =~ s/ Panty and Stocking with Garterbelt / Panty & Stocking with Garterbelt /; | |
93 $newname =~ s/ Spice and Wolf S2 / Spice and Wolf II /; | |
94 $newname =~ s/\[A-E & Saizen\]/[A-E Saizen]/; | |
95 $newname =~ s/\[Flomp\]\[SD\]/[Flomp]/; | |
96 $newname =~ s/\[Jumonji-Giri\]\[Ishin\]/[Jumonji-Giri]/; | |
97 $newname =~ s/\[Jumonji-Giri\]\[F-B&A-E\]/[Jumonji-Giri]/; | |
98 $newname =~ s/\[Jumonji-Giri\] \[Lunar\]/[Jumonji-Giri]/; | |
99 $newname =~ s/\[A-Kraze & Diffusion\]/[A-Kraze Diffusion]/; | |
100 $newname =~ s/ The Story Of Saiunkoku / Saiunkoku Monogatari /i; | |
101 $newname =~ s/Code Geass Lelouch of the Rebellion Episode (\d+) .*(\.mkv)$/ Code Geass - $1$2/i; | |
102 $newname =~ s/ To LOVE-Ru / To Love-Ru /i; | |
103 $newname =~ s/ Inuyasha Kanketsuhen / Inuyasha Kanketsu-hen /; | |
104 $newname =~ s/ AIR / Air /; | |
105 $newname =~ s/ Sister Princess Re Pure / Sister Princess Repure /; | |
106 $newname =~ s/C:\\Users\\Gad\\Desktop\\yankee-megane\\Release\\//; | |
107 $newname =~ s/\(END\)/[End]/i; | |
108 $newname =~ s/\(BD 1280x720 h264 JP.EN AAC\)/[720p BD]/i; | |
109 $newname =~ s/\[Final\]//i; | |
110 $newname =~ s/DB&L-E/DB L-E/; | |
111 $newname =~ s/IY-F&Oki/IY-F Oki/; | |
112 $newname =~ s/L-E&AonE/AonE L-E/; | |
4
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
113 $newname =~ s/^(Detective Conan - [[:digit:]]+-?[[:digit:]]*) (\[DCTP[^]]*\])(.+)$/$2 $1 $3/; |
36 | 114 $newname =~ s/^(Detective Conan - [[:digit:]]+-?[[:digit:]]*) (\[AZFS[^]]*\])(.+)$/$2 $1 $3/; |
115 $newname =~ s/^\[Derp\] Legend of the Legendary Heroes /[Derp] The Legend of the Legendary Heroes /; | |
116 $newname =~ s/ Sengoku BASARA Two / Sengoku Basara Two /; | |
117 $newname =~ s/ Asobi ni Ikuyo! / Asobi ni Iku Yo! /; | |
118 $newname =~ s/ Shinrei Tantei Yakumo / Psychic Detective Yakumo /; | |
119 $newname =~ s/ Ikkitousen Xtreme Xecutor OVA - 0/ Ikkitousen Xtreme Xecutor OVA - /; | |
120 $newname =~ s/ Megane na Kanojo OVA - 0/ Megane na Kanojo OVA - /; | |
121 $newname =~ s/\.Strange\.Dawn\.(\d+)\./ Strange Dawn - $1 /; | |
122 $newname =~ s/ (Tegami Bachi|Letter Bee) REVERSE / Letter Bee Reverse /i; | |
123 $newname =~ s/ Sora No Otoshimono / Sora no Otoshimono /; | |
124 $newname =~ s/ Kidou Tenshi Angelic Layer (ep)?/ Angelic Layer /i; | |
125 $newname =~ s/ Sora No Otoshimono - Forte / Sora no Otoshimono Forte /i; | |
126 $newname =~ s/ Shinryaku! Ika Musume / Squid Girl /; | |
127 #$newname =~ s/ Squid Girl / Shinryaku! Ika Musume /; | |
11 | 128 $newname =~ s/ Seikimatsu Occult Gakuin / Occult Academy /; |
36 | 129 $newname =~ s/ Arakawa Under the Bridge ×2 / Arakawa Under the Bridge x2 /; |
130 $newname =~ s/ K-ON!! S2 / K-ON!! /; | |
131 $newname =~ s/ Ookami-san To Shichinin No Nakama-tachi / Ookami-san /; | |
132 $newname =~ s/ K-On!! / K-ON!! /; | |
133 $newname =~ s/ Ore No Imouto / Ore no Imouto /; | |
134 $newname =~ s/ A Certain Magical Index II / Toaru Majutsu no Index II /i; | |
135 $newname =~ s/ TV Broadcast \[720p/ [LQ 720p/; | |
136 $newname =~ s/ ED(\d)/ - Ending $1 /; | |
137 $newname =~ s/ OP(\d)/ - Opening $1 /; | |
138 $newname =~ s/ ED / - Ending /; | |
139 $newname =~ s/ NCED / - Ending (Clean) /; | |
140 $newname =~ s/ NCOP / - Opening (Clean)/; | |
11 | 141 $newname =~ s/ OP / - Opening /; |
36 | 142 $newname =~ s/ - - / - /; |
143 $newname =~ s/ Ep / /ig; | |
144 #GENERAL RULES | |
145 $newname =~ s/\.DVD/[DVD]/; | |
146 $newname =~ s/ ~(.+)~ / - $1 /; | |
147 $newname =~ s/v2 \(BD-1080p\) / [v2 1080p BD]/i; | |
148 $newname =~ s/v2 \(BD H264 1280x960 24fps AAC\) / [v2 960p BD]/i; | |
149 $newname =~ s/BD 1280x720 FLAC\]/ 720p BD]/i; | |
150 $newname =~ s/\[HD\]\.mp4/.mp4/; | |
151 $newname =~ s/\[\.?AC3\]//i; | |
152 $newname =~ s/\[720p H264 AAC5\.1\]/[720p]/; | |
153 $newname =~ s/\[BD 720p\]/[720p BD]/; | |
154 $newname =~ s/ \(BD H264 1280x960 24fps AAC\) / [960p BD]/i; | |
155 $newname =~ s/ \(h\.264\) //i; | |
156 $newname =~ s/\(xvid-mp3\)//i; | |
157 $newname =~ s/\(BD 1920x1080 *\)/[1080p BD]/i; | |
158 $newname =~ s/v3 \(BD-1080p\) / [v3 1080p BD]/i; | |
159 $newname =~ s/v0 \[720p\]/ [v0 720p]/i; | |
160 $newname =~ s/v0 \[/ [v0 /i; | |
161 $newname =~ s/\[1080p - Bluray\]/[1080p BD]/; | |
162 $newname =~ s/\[Bluray - 1080p\]/[1080p BD]/; | |
163 $newname =~ s/\[BD 1080p AAC\]/[1080p BD]/; | |
164 $newname =~ s/ \(BD-1080p\) / [1080p BD]/i; | |
165 $newname =~ s/ \(720p, BD\) / [720p BD]/i; | |
166 $newname =~ s/ \(BD 1280x960 24fps 5\.1ch\) / [960p BD]/i; | |
167 $newname =~ s/ \(Bluray, 720p, AAC\) / [720p BD]/i; | |
168 $newname =~ s/ \(720p,BluRay\) / [720p BD]/i; | |
169 $newname =~ s/ \(BD, 720p, FLAC\) / [720p BD]/i; | |
170 $newname =~ s/\[END\]/[End]/; | |
171 $newname =~ s/\[BD\]\[720p FLAC\]/[720p BD]/; | |
172 $newname =~ s/\[BD\]\[720p\]/[720p BD]/; | |
173 $newname =~ s/\[BD\]\[1080p\]/[1080p BD]/; | |
174 $newname =~ s/\[h264-480p AAC\]//; | |
175 $newname =~ s/\[h.264-480p\]//i; | |
176 $newname =~ s/ v3 \[720p\]/[v3 720p]/i; | |
177 $newname =~ s/1280x720 H264 OGG/720p/; | |
178 $newname =~ s/ \[BD 1080p FLAC\]/ [1080p BD]/i; | |
179 $newname =~ s/ \[720p BD FLAC\]/ [720p BD]/i; | |
180 $newname =~ s/ \[720p Blu-ray AAC\]/ [720p BD]/i; | |
181 $newname =~ s/ \[BD\]\[h264-1080p FLAC\]/ [1080p BD]/i; | |
182 $newname =~ s/ \(1920x1080\) \[BD\]/ [1080p BD]/i; | |
183 $newname =~ s/ \(960x720 Blu-Ray FLAC\) / [720p BD]/i; | |
184 $newname =~ s/ \(1920x1080 Blu-Ray FLAC\) / [1080p BD]/i; | |
185 $newname =~ s/ \(1280x720 Blu-Ray FLAC\) / [720p BD]/i; | |
186 $newname =~ s/ \(1280x720 h264 BD FLAC\) / [720p BD]/i; | |
187 $newname =~ s/ \(704x480 DVD AAC\) / [DVD]/i; | |
188 $newname =~ s/ \(960x720\) \[BD\]/ [720p BD]/i; | |
189 $newname =~ s/\(704x396\)//; | |
190 $newname =~ s/\(1280x720\)/ [720p]/i; | |
191 $newname =~ s/\(1920x1080\)/ [1080p]/i; | |
192 $newname =~ s/\(720x480 DVD AC3\)/ [DVD]/i; | |
193 $newname =~ s/\(1024x576\)/ [576p]/i; | |
194 $newname =~ s/\(1280x720 h264\)/ [720p]/i; | |
195 $newname =~ s/\(1280x720 ?(h264|x264)?( aac)?\)/ [720p]/i; | |
196 $newname =~ s/\(720p\)/[720p]/i; | |
197 $newname =~ s/\(1080p\)/[1080p]/i; | |
198 $newname =~ s/\(1080p,BD\)/[1080p BD]/i; | |
199 $newname =~ s/\(BD,1080p\)/[1080p BD]/i; | |
200 $newname =~ s/\((BD 720p)\)/ [720p BD]/i; | |
201 $newname =~ s/\(DVD\)/ [DVD]/i; | |
202 $newname =~ s/\[h264-480p\]//i; | |
203 $newname =~ s/\[H264\]//i; | |
204 $newname =~ s/\[DVD\]\[v2\]/[v2 DVD]/i; | |
205 $newname =~ s/xvid//i; | |
206 $newname =~ s/\[AC3\]//i; | |
207 $newname =~ s/\[H264&MP3\]//i; | |
208 $newname =~ s/\[H264-AAC\]//i; | |
209 $newname =~ s/\+AAC//i; | |
210 $newname =~ s/\[720x480 H264-Vorbis\]//i; | |
211 $newname =~ s/\[BD\]\[1280x720 H264-Flac\]/[720p BD]/i; | |
212 $newname =~ s/\[h264 Vorbis\]//i; | |
213 $newname =~ s/\[640x480 h\.264 AAC\]//i; | |
214 $newname =~ s/\[720x480 AR h\.264 AAC\]//i; | |
215 $newname =~ s/\[DVD H264 640x476\]/[DVD]/i; | |
216 $newname =~ s/\[720p\]/[720p]/i; | |
217 $newname =~ s/\[720p\]\[BD\]/[720p BD]/i; | |
218 $newname =~ s/\[H264 1280x720\]/[720p]/i; | |
219 $newname =~ s/\[H264 1280x720 OGG\]/[720p]/i; | |
220 $newname =~ s/\[1280x720\]/[720p]/i; | |
221 $newname =~ s/\[1280x720 BD\]/[720p BD]/i; | |
222 $newname =~ s/\[h264-720p\]/[720p]/i; | |
223 $newname =~ s/\[h264-1080p FLAC\]/[1080p]/i; | |
224 $newname =~ s/\[BD\]\[h264-1080p AC3\]/[1080p BD]/i; | |
225 $newname =~ s/\[-/[/i; | |
226 $newname =~ s/ \(1280x720 x264 AAC\)/ [720p]/i; | |
227 $newname =~ s/\[720p\]\[v2\]/[v2 720p]/i; | |
228 $newname =~ s/\[480p\]//i; | |
229 $newname =~ s/\[v2\]\[720p\]/[v2 720p]/i; | |
230 $newname =~ s/\[H264 - AAC\]//i; | |
231 $newname =~ s/\[H264 1280x720 AAC\] /[720p]/i; | |
232 $newname =~ s/\[720p\]\[End\]/[End 720p]/i; | |
233 $newname =~ s/ R2 DVD\(H264\.AC3\)/ [DVD]/i; | |
234 $newname =~ s/ - Ep / - /i; | |
235 $newname =~ s/(h|x)\.?264//i; | |
236 $newname =~ s/\[BD\]\[1080p-?\]/[1080p BD]/; | |
237 $newname =~ s/AAC5\.1//; | |
238 $newname =~ s/FLAC//; | |
239 $newname =~ s/ aac//i; | |
240 $newname =~ s/ ac3//i; | |
241 $newname =~ s/\.DVD/ [DVD]/i; | |
242 $newname =~ s/ DVD / [DVD] /i; | |
243 $newname =~ s/\(DVD ?\)/ [DVD] /i; | |
244 $newname =~ s/ Ep(\d+) / - $1 /; | |
245 $newname =~ s/ Ep(\d+)v2 / - $1 [v2]/; | |
246 $newname =~ s/ (\d+) / - $1 /; | |
247 $newname =~ s/ (\d+)v(2|3) / $1 [v${2}]/; | |
248 $newname =~ s/\[720x480 AR FLAC\]//i; | |
249 $newname =~ s/\[DVD 640x480\]/[DVD]/; | |
250 $newname =~ s/ Episode (- )+(\d+) / - $2 /; | |
251 #DANGEROUS CLEANUPS | |
252 $newname =~ s/ \[v(2|3)\]\[(.+)\]\[([0-9A-Fa-f]{8})\]/ [v$1 $2][$3]/; | |
253 $newname =~ s/\]/] /g; | |
254 $newname =~ s/\[/ [/g; | |
255 $newname =~ s/\] +\[/][/g; | |
256 $newname =~ s/\[ +/[/g; | |
257 $newname =~ s/ +\]/]/g; | |
258 $newname =~ s/( -)+ / - /g; | |
259 $newname =~ s/(\[|\()([0-9a-fA-F]{8})(\]|\))/[\U$2]/; | |
260 $newname =~ s/ +(\.\w{3})$/$1/; | |
261 $newname =~ s/\[\]//g; | |
262 $newname =~ s/\(\)//g; | |
263 #EXCEPTIONS | |
264 $newname =~ s/^\[DB&L-E\]/[DB L-E]/; | |
11 | 265 $newname =~ s/ VS Knight Lamune & - 40 fire / VS Knight Lamune & 40 fire /; |
36 | 266 $newname =~ s/ RAINBOW / Rainbow /; |
267 $newname =~ s/ Golgo - 13 / Golgo 13 /; | |
268 $newname =~ s/ Strike Witches - 2 / Strike Witches 2 - /; | |
269 $newname =~ s/ 07-GHOST / 07-Ghost /; | |
270 $newname =~ s/ K-ON!! B-Side Theater - Uraon!! - / K-ON!! B-Side Theater - Uraon!! /; | |
271 $newname =~ s/ Captain Tsubasa Road to - 2002 / Captain Tsubasa Road to 2002 /; | |
272 $newname =~ s/ SP0/ - Special /; | |
273 $newname =~ s/ Special - / - Special /; | |
274 $newname =~ s/ Opening - / Opening /; | |
275 $newname =~ s/ Ending - / Ending /; | |
276 $newname =~ s/ Hidamari Sketch Hoshimittsu - Special / Hidamari Sketch Hoshimittsu Special - /; | |
277 $newname =~ s/ Spice and Wolf S2 - BD Menu - 0/ Spice and Wolf S2 - BD Menu /; | |
278 $newname =~ s/ Canvas - 2 - / Canvas 2 - /; | |
279 $newname =~ s/ Mitsudomoe - 2 - / Mitsudomoe 2 - /; | |
280 $newname =~ s/ Eyeshield - 21 - / Eyeshield 21 - /; | |
281 $newname =~ s/ Eyeshield 21 - (\d{2}) / Eyeshield 21 - 0$1 /; | |
282 $newname =~ s/ Eyeshield 21 - (\d{2})-(\d{2}) / Eyeshield 21 - 0$1-0$2 /; | |
283 $newname =~ s/ - 2010 Young Animator / 2010 Young Animator /; | |
284 $newname =~ s/\[G P\]/[G_P]/i; | |
285 #SAFE CLEANUPS | |
286 $newname =~ s/ +/ /g; | |
287 $newname =~ s/^ +//; | |
288 $newname =~ s/(- )+/- /; | |
289 $newname =~ s/^\[N - F\]/[N-F]/; | |
290 $newname =~ s/^\[K-F & AKUPX\]/[K-F AKUPX]/; | |
291 $newname =~ s/^\[([\s\w\- ]+)\] (Kyou Kara Maou|Bleach|Naruto|One Piece|Detective Conan) - (Opening \d+|Special \d+|\d+|\d+-\d+) /$2 - $3 [$1]/; | |
292 $newname =~ s/^Naruto - (\d{2}) /Naruto - 0$1 /; | |
293 $newname =~ s/^Naruto - (\d{2})-(\d{2}) /Naruto - 0$1-0$2 /; | |
294 print(qq($_: $newname already exists, skipping\n)) and next() if -e $newname and $_ ne $newname; | |
295 if ($_ eq $newname) { | |
296 print("$_: no need to rename, skipping\n"); | |
297 } else { | |
298 if($skip==1) { print("Result: $_ --> $newname\n"); } | |
299 else { | |
300 if(rename($_, $newname)) { print("$_ -> $newname\n"); } | |
301 else { print("$_: rename failed\n"); } | |
302 } | |
303 } | |
304 next(); | |
4
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
305 } |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
306 |
94ee419ad047
Added bin-ec - a collection of scripts.
Edho Prima Arief <me@myconan.net>
parents:
diff
changeset
|
307 exit(0); |