X-Git-Url: http://www.git.stargrave.org/?p=torn.git;a=blobdiff_plain;f=torn;h=36d8c8f10bee2e2b0eda96a315866f68481711db;hp=5db4688f851ebad6a648a29e1297bf4b40b674d0;hb=HEAD;hpb=6077f2f6b52f33b4f82f3ebafde547bca8cdfc76 diff --git a/torn b/torn deleted file mode 100755 index 5db4688..0000000 --- a/torn +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env perl -# torn - Musical files renaming with russian language transliteration -# Copyright (C) 2007-2021 Sergey Matveev (stargrave@stargrave.org) -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, version 3 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -=pod - -=head1 DESCRIPTION - -This Perl script takes directory file list and renames all files, -making some substitution changes. It has some rules for musical -files and rules to convert russian filenames to translit. - -=head1 USAGE - -Simply run this script in directory where you want files and/or -directorires to be renamed. - -=head1 OVERVIEW - -=over 4 - -=item * Transliterate everything - -=item * Replaces spaces with underscore - -=item * Downcase all extensions - -=item * "_-_" so good looking on the screen is replaced by single dash - -=item * Remove spaces before and after brackets - -=item * Remove "[]" brackets - -=item * Replace ampersand with "and" word - -=back - -=head1 AUTHOR - -Sergey Matveev L - -=cut - -use strict; -use utf8; -use Encode; - -binmode STDOUT, ":utf8"; - -my $VERSION = "0.10"; - -my $src; -my $dst; -my $src_filename; - -if ($#ARGV >= 0) { - print "torn version $VERSION, Copyright (C) 2007-2021 Sergey Matveev -torn comes with ABSOLUTELY NO WARRANTY. This is free software, -and you are welcome to redistribute it under certain conditions.\n -Usage: just run inside the directory. Look for POD inside the script itself.\n"; -}; - -opendir DIR, "." or die "Can not open directory\n"; -foreach (sort readdir DIR) { - # Skip directory itself - next if /^\.{1,2}$/; - next if -d; - - $src_filename = $_; - $src = decode "utf-8", $src_filename; - $dst = $src; - - # Basic corrections for music files - $dst =~ s/ /_/g; - $dst =~ s/_-_/-/g; - $dst =~ s/_\(/\(/g; - $dst =~ s/-\(/-/g; - $dst =~ s/\)_/-/g; - $dst =~ s/\,_/\,/g; - $dst =~ s/\[//g; - $dst =~ s/\]//g; - $dst =~ s/\(_/\(/g; - $dst =~ s/_\)/\)/g; - $dst =~ s/\&/and/g; - - # Make translit - $dst =~ y/абвгдеёзийклмнопрстуфхцьъыэ/abvgdeezijklmnoprstufhcjjye/; - $dst =~ y/АБВГДЕЁЗИЙКЛМНОПРСТУФХЦЬЪЫЭ/ABVGDEEZIJKLMNOPRSTUFHCJJYE/; - $dst =~ s/ж/zh/g; - $dst =~ s/ч/ch/g; - $dst =~ s/ш/sh/g; - $dst =~ s/щ/sch/g; - $dst =~ s/я/ja/g; - $dst =~ s/ю/ju/g; - $dst =~ s/Ж/Zh/g; - $dst =~ s/Ч/Ch/g; - $dst =~ s/Ш/Sh/g; - $dst =~ s/Щ/Sch/g; - $dst =~ s/Я/Ja/g; - $dst =~ s/Ю/Ju/g; - - # Lowercase file extensions - if ($dst =~ /^(.*)\.([^\.]+)$/) { - $dst = $1 . "." . lc $2; - }; - - # Change looking of track numbers - if ($dst =~ /^(\d+)[-.]_*(.+)$/) { - $dst = "$1.$2"; - }; - - next if ($src_filename eq $dst); - print "$src -> $dst\n"; - die "\"$dst\" exists" if -e $dst; - rename $src_filename, $dst; -}; -closedir DIR;