X-Git-Url: http://www.git.stargrave.org/?p=torn.git;a=blobdiff_plain;f=torn;h=36d8c8f10bee2e2b0eda96a315866f68481711db;hp=7c23866878536700457df14ac93e81f651f1b178;hb=HEAD;hpb=05c5d7ddae9dd75bf33743b14c4fd63d5077e166 diff --git a/torn b/torn deleted file mode 100755 index 7c23866..0000000 --- a/torn +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env perl -# torn - Musical files renaming with russian language translitting -# Copyright (C) 2007-2016 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; either version 3 of the License, or -# (at your option) any later version. -# -# 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.9"; - -my $src; -my $dst; -my $src_filename; - -print "torn version $VERSION, Copyright (C) 2007-2016 Sergey Matveev -torn comes with ABSOLUTELY NO WARRANTY. This is free software, -and you are welcome to redistribute it under certain conditions.\n\n"; - -opendir DIR, "." or die "Can not open directory\n"; -foreach (sort readdir DIR) { - # Skip directory itself - next if /^\.{1,2}$/; - - $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 - # And renaming itself - if($dst =~ /^(\d+)\-(.+)$/){ - print "$src -> $1.$2\n"; - rename $src_filename, "$1.$2"; - } else { - print "$src -> $dst\n"; - rename $src_filename, $dst; - }; -}; -closedir DIR;