Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

20.11.2008, 20:30
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
[perl] torrent_renamer
torrent_renamer
by eLWAux
thnk. Kaimi

скрипт которий переименовивает .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:
renamed: 10 files
71% of all file(s)
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
before:
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
Madagaskar.torrent
[torrents.ru].11641143 - Укуренные.torrent
[torrents.ru].11697517.torrent
[torrents.ru].12933424.torrent
[torrents.ru].13433188.torrent
[torrents.ru].13504075.torrent
[torrents.ru].13669520 - Пламя и Цитрон.torrent
[torrents.ru].13743508 - После прочтения cжечь.torrent
[torrents.ru].1776583 - Отступники.torrent
[torrents.ru].4841400 - Аристотель. Все обо всем..torrent
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
after:
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
Madagaskar.2.2008.avi.torrent
ђЈђє‘ѓ‘ЂђµђЅђЅ‘‹ђµ.torrent
Hackers_1995_HDRip_Rus_PowerTracker.org.avi.torren t
Vavilon.2008.P.DVDRip.KINODOME.avi.torrent
ANNIHILATION2.avi.torrent
sway_gaming.avi.torrent
Plamja.i.Citron.2008.P.DVDRip_INTERFILM.avi.torren t
posle_proctenia_AVC.mkv.torrent
Otstupniki.avi.torrent
Aristotel.avi.torrent
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
not renamed:
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
Antix-M7.2.zip.torrent
menuetos-x86-0.84.qcow.img.zip.torrent
mona-0.3.0a8.qcow.img.zip.torrent
my.torrent
єсли отредактировать скрипт и сделать так что $pr='[torrent]';
тогда после работи скрипта в файле result_rename.txt ми увидем следуеще:
renamed: 14 files
100% of all file(s)
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
before:
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
Antix-M7.2.zip.torrent
Madagaskar.torrent
menuetos-x86-0.84.qcow.img.zip.torrent
mona-0.3.0a8.qcow.img.zip.torrent
my.torrent
[torrents.ru].11641143 - Укуренные.torrent
[torrents.ru].11697517.torrent
[torrents.ru].12933424.torrent
[torrents.ru].13433188.torrent
[torrents.ru].13504075.torrent
[torrents.ru].13669520 - Пламя и Цитрон.torrent
[torrents.ru].13743508 - После прочтения cжечь.torrent
[torrents.ru].1776583 - Отступники.torrent
[torrents.ru].4841400 - Аристотель. Все обо всем..torrent
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
after:
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
[torrent]Antix-M7.2.zip.torrent
[torrent]Madagaskar.2.2008.avi.torrent
[torrent]menuetos-x86-0.84.qcow.img.zip.torrent
[torrent]mona-0.3.0a8.qcow.img.zip.torrent
[torrent]my.torrent
[torrent]ђЈђє‘ѓ‘ЂђµђЅђЅ‘‹ђµ.torrent
[torrent]Hackers_1995_HDRip_Rus_PowerTracker.org.avi.torren t
[torrent]Vavilon.2008.P.DVDRip.KINODOME.avi.torrent
[torrent]ANNIHILATION2.avi.torrent
[torrent]sway_gaming.avi.torrent
[torrent]Plamja.i.Citron.2008.P.DVDRip_INTERFILM.avi.torren t
[torrent]posle_proctenia_AVC.mkv.torrent
[torrent]Otstupniki.avi.torrent
[torrent]Aristotel.avi.torrent
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
not renamed:
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
как видно все переименование файли сначала имеют текст:
[torrent], то что ми установили в $pr..
p.s.:
1( скрипт некорректо отображает UTF8 текст, как исправить незнаю; кто подскажет, буду только рад)
2( все замечания\предложения пишем тут
также, я через несколько дней доделаю скрипт, которий проверяет какие торренти загружени, какие нет, и в соответствии перемещает торретки в другие папки..
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
==-=--==--=--=-=-=-=-=-=-=-=--==--==-=-=--=-=--==-
perl::code
Код:
system('cls');
##########################################################################
##########################################################################
##########################################################################
$dir = '.'; #without /
$pr = '[torrent]';
##########################################################################
##########################################################################
##########################################################################
sub saveFile
{
open(myFILE,">$_[0]") || die "error: $!";
print myFILE $_[1];
close(myFILE);
}
sub cyr #Kaimi modifed
{
($_)=@_;
y/А-яЁё/\x80-\xaf\xe0-\xf1/;
return $_;
}
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 #Kaimi modifed
{
my $new_name;
$new_name=cyr(read_str($_[0],'name'));
$new_name=~s/\[torrents.ru\]//ge;
return $new_name.'.torrent';
}
##########################################################################
##########################################################################
##########################################################################
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='';
foreach my $file(@FILES) {
$res='';
open(DESC, $file);
read(DESC,$res,-s $file);
close(DESC);
print ' '.cyr($file)."\n";
$n = $pr.rename_torrent($res);
if ($n eq $file)
{ print '[-] '.$n."\n";
$nren.=$n."\n";
} else
{ $g++;
rename $file,$n;
$bef.=$file."\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>;
Последний раз редактировалось eLWAux; 24.11.2008 в 22:07..
|
|
|

22.11.2008, 22:34
|
|
Познавший АНТИЧАТ
Регистрация: 05.05.2008
Сообщений: 1,078
Провел на форуме: 10311449
Репутация:
1357
|
|
А можно поподробней для чего и что делает этот скрипт.
|
|
|

22.11.2008, 22:41
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме: 9257858
Репутация:
979
|
|
Для удобства 
|
|
|

23.11.2008, 00:09
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
А можно поподробней для чего и что делает этот скрипт.
когда качаеш торренти, то они имеют названия, типа: [torrent].12937198.torrent или что то подобное..; так вот насобиралося у тебя (как у меня  штук 100таких файлов с непонятним названиям.. смотриш ти на весь єтот бред и думаеш "блин.. и что я с єтого посмотрел?".. можна каждий торрент по-очереди в прогу кидать и смотреть что за торрент., но єто не виход, так как 100 файлов заи**ся смотреть..
так вот я написал скрипт, которий єти все торренти с непонятним названиям переименовивает в "нормальний" вид..
пр: нашел ти на форуме torrents.ru фильм бригаду. скачал торрент 1239888217.torrent. закачал бригаду. посмотрел. удалил фильм. скачал потом єщо один фильм, єщо один, .... и так насобиралось много торрентов. и ти внось захотел посмотреть бригаду, но не помниш названия торрета. кладеш скрипт в папку с єтими *.torrent файлами, запускаеш. после завершения роботи скрипт переименует 1239888217.torrent в Brigada.torrent
а в общем , скрипт просто для удобства)
превращает "мусор" в ценность)
|
|
|

23.11.2008, 00:52
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
sub cyr
{
$phrase = shift;
$phrase =~ y/А-яЁё/\x80-\xaf\xe0-\xf1/;
return $phrase;
}
Моно сделать так
Код:
sub cyr
{
($_)=@_;
y/А-яЁё/\x80-\xaf\xe0-\xf1/;
return $_;
}
open(DESC, @FILES[$i]);
while (<DESC>) {$res.= $_;}
close(DESC);
Код:
open(DESC, $FILES[$i]);
read(DESC,$res,-s $FILES[$i]);
close(DESC);
for ($i=0;$i<@FILES  {
мне кажется так красивее
Код:
foreach my $file(@FILES) {
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
}
А зачем переменная $old_name ? зачем юзать local? в мануале вроде пишут что лучше my юзать...
|
|
|

23.11.2008, 01:54
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
Kaimi, спасибо за ошибки)
кстате, sub cyr твоя функция)
|
|
|

23.11.2008, 02:00
|
|
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме: 389768
Репутация:
158
|
|
То же самое, только на PHP и в 2 раза меньше.
Плюс корректно работает с UTF-8.
PHP код:
<?php
$dir = scandir('.');
foreach($dir as $filename)
{
if($filename == '.' or $filename == '..') continue;
if(substr($filename,-7) != 'torrent') continue;
$handle = fopen($filename, "r");
$buffer = fgets($handle, 4096);
fclose($handle);
preg_match('#\[torrents.ru\].(.+?).torrent#',$filename,$id);
$result = explode(':', $buffer);
foreach($result as $key => $date)
{
if(substr($date,0,4)=='name') {
$name = str_replace(' ','.',substr($result[$key+1],0,strlen($result[$key+1])-2));
break;
}
}
if(detectUTF8($name)) $name = iconv('UTF-8', 'windows-1251', $name);
echo "[{$id[1]}].$name.torrent<br>\n"; //Or Rename File
}
function detectUTF8($string)
{
return preg_match('%(?:
[\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
|\xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
|\xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
|\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
|[\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
|\xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)+%xs', $string);
}
?>
Не понимаю, зачем под такой бред создавать отдельную тему, и ставить свои копирайты.
Последний раз редактировалось Solker; 23.11.2008 в 03:30..
|
|
|

23.11.2008, 02:11
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
кстате, sub cyr твоя функция)
Эм, это где ты у меня её видел?
|
|
|

23.11.2008, 14:04
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
Не понимаю, зачем под такой бред создавать отдельную тему, и ставить свои копирайты.
Solker,
тема создана чтоб показать роботу с torrent'ами на перле
копирайти поставил потому что я написал с нуля сам
detectUTF8 всегда можно добавить
размер моего скрипта больше твоего (єсли єто твой скрипт..) потому что у меня все разбито про функциях, єсли все слепить, то получиться не больше твоего
Эм, это где ты у меня её видел?
точно не помню, но вроде где-то в разделе "для новичков" 
|
|
|

23.11.2008, 16:38
|
|
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме: 389768
Репутация:
158
|
|
1( скрипт некорректо отображает UTF8 текст, как исправить незнаю; кто подскажет, буду только рад)
detectUTF8 всегда можно добавить
Ну так и добавь.
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Брутфорс garena.com [Perl]
|
Kaimi |
PHP, PERL, MySQL, JavaScript |
39 |
25.03.2010 19:20 |
|
[perl] перезапуск потоков
|
.::Gh0st::. |
PHP, PERL, MySQL, JavaScript |
7 |
09.11.2008 22:18 |
|
[PERL] Сканер портов. Требуется помощь
|
Sharky |
PHP, PERL, MySQL, JavaScript |
37 |
06.11.2008 13:54 |
|
Cpanel Password Brute Forcer [perl]
|
mailbrush |
Уязвимости |
0 |
31.10.2008 21:44 |
|
[perl] скрипт который отделяет от акков не нужное
|
MaTpOc |
PHP, PERL, MySQL, JavaScript |
1 |
24.09.2008 21:09 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|