ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[perl] torrent_renamer
  #1  
Старый 20.11.2008, 20:30
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию [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..
 
Ответить с цитированием

  #2  
Старый 22.11.2008, 22:34
Аватар для MaTpOc
MaTpOc
Познавший АНТИЧАТ
Регистрация: 05.05.2008
Сообщений: 1,078
Провел на форуме:
10311449

Репутация: 1357


По умолчанию

А можно поподробней для чего и что делает этот скрипт.
 
Ответить с цитированием

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

Репутация: 979


Отправить сообщение для rushter с помощью ICQ
По умолчанию

Для удобства
 
Ответить с цитированием

  #4  
Старый 23.11.2008, 00:09
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

Цитата:
А можно поподробней для чего и что делает этот скрипт.
когда качаеш торренти, то они имеют названия, типа: [torrent].12937198.torrent или что то подобное..; так вот насобиралося у тебя (как у меня штук 100таких файлов с непонятним названиям.. смотриш ти на весь єтот бред и думаеш "блин.. и что я с єтого посмотрел?".. можна каждий торрент по-очереди в прогу кидать и смотреть что за торрент., но єто не виход, так как 100 файлов заи**ся смотреть..

так вот я написал скрипт, которий єти все торренти с непонятним названиям переименовивает в "нормальний" вид..
пр: нашел ти на форуме torrents.ru фильм бригаду. скачал торрент 1239888217.torrent. закачал бригаду. посмотрел. удалил фильм. скачал потом єщо один фильм, єщо один, .... и так насобиралось много торрентов. и ти внось захотел посмотреть бригаду, но не помниш названия торрета. кладеш скрипт в папку с єтими *.torrent файлами, запускаеш. после завершения роботи скрипт переименует 1239888217.torrent в Brigada.torrent

а в общем , скрипт просто для удобства)
превращает "мусор" в ценность)
 
Ответить с цитированием

  #5  
Старый 23.11.2008, 00:52
Аватар для Kaimi
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Цитата:
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 юзать...
 
Ответить с цитированием

  #6  
Старый 23.11.2008, 01:54
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

Kaimi, спасибо за ошибки)
кстате, sub cyr твоя функция)
 
Ответить с цитированием

  #7  
Старый 23.11.2008, 02:00
Аватар для Solker
Solker
Участник форума
Регистрация: 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($handle4096);
  
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..
 
Ответить с цитированием

  #8  
Старый 23.11.2008, 02:11
Аватар для Kaimi
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Цитата:
кстате, sub cyr твоя функция)
Эм, это где ты у меня её видел?
 
Ответить с цитированием

  #9  
Старый 23.11.2008, 14:04
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

Цитата:
Не понимаю, зачем под такой бред создавать отдельную тему, и ставить свои копирайты.
Solker,
тема создана чтоб показать роботу с torrent'ами на перле
копирайти поставил потому что я написал с нуля сам
detectUTF8 всегда можно добавить
размер моего скрипта больше твоего (єсли єто твой скрипт..) потому что у меня все разбито про функциях, єсли все слепить, то получиться не больше твоего

Цитата:
Эм, это где ты у меня её видел?
точно не помню, но вроде где-то в разделе "для новичков"
 
Ответить с цитированием

  #10  
Старый 23.11.2008, 16:38
Аватар для Solker
Solker
Участник форума
Регистрация: 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)
 


Быстрый переход




ANTICHAT.XYZ