| [Perl] torrent_renamer 20.11.2008 | |||
| torrent_renamer by eLWAux ![]() скрипт которий переименовивает .torrent (маски: [torrents.ru].??????????.torrent, где ?- какая то цифра) на файл с именем первого файла торрента ![]() например: в папке со скриптом єсть файл: [torrents.ru].13433188.torrent после запуска скрипт, имя файла будет: Madagaskar.2.2008.aviю.torrent для запуска нужет ActivePerl или другая среда в .pl файле можна изменить: $dir папка, в которой переименовываться торренти: (например: $dir= '.'; -поточная папка $dir= 'c:\windows' -диск c:, папка windows) $pr текст, которий будет добавлен до имени нового файла с самого начала (например: $pr= 'test'; - тогда все переименование файли будут иметь имя: test????.torrent) использование: 1( кладем скрипт в папку с торрентами 2( запускаем скрипт 3( после завершения работи, скрипт покажет статистику: [i] renamed: количесто_переименованих_файлов [%] количесто_перемменованих_файлов_в_проценатах% renamed! 4( смотрим в файл result_rename.txt, там полная статистика переименованих и неПереименованих файлов пример файла result_rename.txt: Цитата:
тогда после работи скрипта в файле result_rename.txt ми увидем следуеще: Цитата:
[torrent], то что ми установили в $pr.. также, я через несколько дней доделаю скрипт, которий проверяет какие торренти загружени, какие нет, и в соответствии перемещает торретки в другие папки.. ==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==- ==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==- ==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==- perl::code Код:
system('cls');
##########################################################################
##########################################################################
##########################################################################
$dir = '.'; #without /
$pr = '[torrent]';
##########################################################################
##########################################################################
##########################################################################
sub saveFile
{
open(myFILE,">$_[0]") || die "error: $!";
print myFILE $_[1];
close(myFILE);
}
sub cyr
{
$phrase = shift;
$phrase =~ y/А-яЁё/\x80-\xaf\xe0-\xf1/;
return $phrase;
}
sub read_str
{
if ($_[0] =~ /:$_[1](\d{0,4}):/)
{return substr($_[0], index($_[0],$_[1])+length($_[1])+length($1)+1, $1)}
else {return '';}
}
sub read_num
{
if ($_[0] =~ /$_[1]i(\d{0,64})e/)
{return $1} else {return ''}
}
sub rename_torrent
{
local $new_name,$old_name;
$old_name=$_[0];
$new_name=cyr(read_str($_[0],'name'));
$new_name=~s/\[torrents.ru\]//ge;
return $new_name.'.torrent';
#rename old new
}
##########################################################################
##########################################################################
##########################################################################
system('cls');
print "--====--=--=- eLWAux -=-==-====--\n";
print "--===-== torrent renamer -=-===--\n";
print "--====-==-=-=-=-=-=-=-=--==-===--\n\n";
opendir(TEMPDIR,$dir) or die("[-] Error ($!)..");
@FILES=grep(/\.torrent$/i, readdir TEMPDIR);
closedir(TEMPDIR);
print '[i] '.@FILES." *.torrent's found\n";
print '[i] '.localtime(time())."\n";
print "--====-==-=-=-=-=-=-=-=--==-===--\n\n";
$g=0;$bef='';$aft='';$nren='';
for ($i=0;$i<@FILES;) {
$res='';
open(DESC, @FILES[$i]);
while (<DESC>) {$res.= $_;}
close(DESC);
print ' '.cyr(@FILES[$i])."\n";
$n = $pr.rename_torrent($res);
if ($n eq @FILES[$i])
{ print '[-] '.$n."\n";
$nren.=$n."\n";
} else
{ $g++;
rename @FILES[$i],$n;
$bef.=@FILES[$i]."\n";
$aft.=$n."\n";
print '[+] '.$n."\n";
}
$i++;
}
print '[i] renamed: '.$g."\n";
print '[%] '.int(($g/@FILES)*100).'% renamed!';
saveFile('result_rename.txt',
"renamed: $g files\n".
" ".int(($g/@FILES)*100)."% of all file(s)\n".
"==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-\n".
"before:\n".
"==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-\n".
$bef."\n".
"==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-\n".
"after:\n".
"==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-\n".
$aft."\n".
"==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-\n".
"\nnot renamed:\n".
"==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-\n".
$nren."\n");
<STDIN>;
| |||