Grabber Торрентов

 • Просмотры: 2183
Tr
TraFF1c
Сообщения: 19
Зарегистрирован: 11 дек 2009, 23:35
Сообщение

Grabber Торрентов

07 июн 2010, 22:02

Нарыл мод на TDBEV
Grabber Торрентов суть мода токова
Описание: Grabber торрентов - скрипт, который в автоматическом режиме, скачивает мультитрекерные торренты с других ресурсов и загружает на ваш.
Работает по следующему принципу, собирает ID торрентов в файл. Потом считывает их, скачивает торрент-файлы, и описание, перерабатывает под мультитрекер.
Доп.Инфа http://bit-torrent.kiev.ua/grabber_orre ... 5%EA%E5%F0

Может кто нароет исходни !
le
levik
Откуда: Город - Герой Киев
Благодарил (а): 1 раз
Поблагодарили: 14 раз
Сообщения: 321
Зарегистрирован: 07 янв 2010, 15:45
Сообщение

Grabber Торрентов

07 июн 2010, 23:05


tsteal.php

Код: Выделить всё

<?
//ASTEA-S VARIABILILE
$passkey="109a0a4981bc4294c48a8775d14dbbc3";
$url = "http://announce.torrentsmd.com:443/announce.php/";
$rss = "http://torrentsmd.com/rss.xml";
$tdl = "http://www.torrentsmd.com/torrents/";
$verbose = true;
if (isset($_GET['verbose'])) $verbose = true;


########################################################################################################################
########################################################################################################################
//aici incepe codul

include("include/bittorrent.php");
include("include/benc.php");

function torrent_exists($id){
    $x = false;
    $f = @mysql_fetch_array(@mysql_query("SELECT * FROM torrents WHERE id='".$id."';"));
    if ($f && $f != null)
	$x = true;
    $f = @mysql_fetch_array(@mysql_query("SELECT * FROM torrents WHERE id='".$id."';"));
    if ($f && $f != null)
	$x = true;
    return $x;
}

function utf8_win($s){
    $s=str_replace("xD0xB0","Б",$s);  $s=str_replace("xD0x90","б",$s);
    $s=str_replace("xD0xB1","В",$s);  $s=str_replace("xD0x91","в",$s);
    $s=str_replace("xD0xB2","Ч",$s);  $s=str_replace("xD0x92","ч",$s);
    $s=str_replace("xD0xB3","З",$s);  $s=str_replace("xD0x93","з",$s);
    $s=str_replace("xD0xB4","Д",$s);  $s=str_replace("xD0x94","д",$s);
    $s=str_replace("xD0xB5","Е",$s);  $s=str_replace("xD0x95","е",$s);
    $s=str_replace("xD1x91","Ј",$s);  $s=str_replace("xD0x81","і",$s);
    $s=str_replace("xD0xB6","Ц",$s);  $s=str_replace("xD0x96","ц",$s);
    $s=str_replace("xD0xB7","Ъ",$s);  $s=str_replace("xD0x97","ъ",$s);
    $s=str_replace("xD0xB8","Й",$s);  $s=str_replace("xD0x98","й",$s);
    $s=str_replace("xD0xB9","К",$s);  $s=str_replace("xD0x99","к",$s);
    $s=str_replace("xD0xBA","Л",$s);  $s=str_replace("xD0x9A","л",$s);
    $s=str_replace("xD0xBB","М",$s);  $s=str_replace("xD0x9B","м",$s);
    $s=str_replace("xD0xBC","Н",$s);  $s=str_replace("xD0x9C","н",$s);
    $s=str_replace("xD0xBD","О",$s);  $s=str_replace("xD0x9D","о",$s);
    $s=str_replace("xD0xBE","П",$s);  $s=str_replace("xD0x9E","п",$s);
    $s=str_replace("xD0xBF","Р",$s);  $s=str_replace("xD0x9F","р",$s);
    $s=str_replace("xD1x80","Т",$s);  $s=str_replace("xD0xA0","т",$s);
    $s=str_replace("xD1x81","У",$s);  $s=str_replace("xD0xA1","у",$s);
    $s=str_replace("xD1x82","Ф",$s);  $s=str_replace("xD0xA2","ф",$s);
    $s=str_replace("xD1x83","Х",$s);  $s=str_replace("xD0xA3","х",$s);
    $s=str_replace("xD1x84","Ж",$s);  $s=str_replace("xD0xA4","ж",$s);
    $s=str_replace("xD1x85","И",$s);  $s=str_replace("xD0xA5","и",$s);
    $s=str_replace("xD1x86","Г",$s);  $s=str_replace("xD0xA6","г",$s);
    $s=str_replace("xD1x87","Ю",$s);  $s=str_replace("xD0xA7","ю",$s);
    $s=str_replace("xD1x88","Ы",$s);  $s=str_replace("xD0xA8","ы",$s);
    $s=str_replace("xD1x89","Э",$s);  $s=str_replace("xD0xA9","э",$s);
    $s=str_replace("xD1x8A","Я",$s);  $s=str_replace("xD0xAA","я",$s);
    $s=str_replace("xD1x8B","Щ",$s);  $s=str_replace("xD0xAB","щ",$s);
    $s=str_replace("xD1x8C","Ш",$s);  $s=str_replace("xD0xAC","ш",$s);
    $s=str_replace("xD1x8D","Ь",$s);  $s=str_replace("xD0xAD","ь",$s);
    $s=str_replace("xD1x8E","А",$s);  $s=str_replace("xD0xAE","а",$s);
    $s=str_replace("xD1x8F","С",$s);  $s=str_replace("xD0xAF","с",$s);
    return $s;
}


if ($verbose) {print "Downloading RSS...\n"; ob_flush();flush();}
$rss = @fopen($rss,"r") or die("Error downloading RSS.");
$xml = null;
while (!feof($rss)){
    $xml .= fgets($rss,4096);

}
fclose($rss);
if ($verbose) {print "Finished downloading RSS...\n"; print "\nParsing RSS...\n"; ob_flush();flush();}
$xml = strstr($xml,"<item>");
$items = str_replace("<item>","",split("</item>\n<item>",$xml));
//$items = array($items[0]);
foreach($items as $torrent){
    $torrent=str_replace("\n","",$torrent);
    preg_match("/<category>(.*?)<\/category>/i",$torrent,$c);
    $x['category'] = $c[1];
    
    preg_match("/<title>(.*?)<\/title>/i",$torrent,$t);
    $x['title'] = str_replace("(".$x['category'].")","",$t[1]);
    
    preg_match("/<description>(.*?)<\/description>/i",$torrent,$d);
    $x['description'] = $d[1];
    preg_match("/<enclosure url=(.*?) type=torrent/>/i",$torrent,$d1);
    $x['enclosure'] = $d1[1];
    preg_match("/<image><link>(.*?)<\/link><\/image>/i",$torrent,$i);
    $x['image'] = $i[1];
    
    preg_match("/<link>(.*?)<\/link>/i",$torrent,$tmp);
    preg_match("/id=(.*?)&/i",$tmp[1],$i);
    $x['id'] = $i[1];
    
    preg_match("/download.php\/".$x['id']."\/(.*?)\"/i",$torrent,$f);
    $x['fname'] = $f[1];
    
    $x = str_replace("<","<",$x);
    $x = str_replace(">",">",$x);
    
    if ($verbose) {print "\nFound Torrent #".$x['id']."...\n"; ob_flush();flush();}

    if (!torrent_exists($x['id'])){
        //aici scot peerurile
	$turl = $tdl.$x['id'].".torrent";
	$re = null;
	$tbody = null;    
	if ($verbose) {print "Downloading .torrent file...\n"; ob_flush();flush();}
        $tfile = @fopen($turl,"r");
	if ($tfile)
	    while (!feof($tfile))
    		$tbody .= fgets($tfile,1024);
	else
	    continue;
	if ($verbose) {print "Finished downloading torrent...\n"; ob_flush();flush();}
	$torrent = bdec($tbody);
	if ($verbose) {print "Getting hash_info...\n"; ob_flush();flush();}
	$hash = pack("H*", sha1($torrent['value']['info']['string']));

	$file = @fopen(str_replace("\n","",$url.$passkey."?info_hash=".urlencode($hash)."&peer_id=exbc%009%E0%F9P%CAv%A9%A5%23w%5C%E7%C6%D2%F6&port=17368&uploaded=0&downloaded=0&left=0&numwant=200&compact=1&no_peer_id=1&key=21436&event=stopped"),"r");
	if ($verbose) {print "Getting peers info for torrent #".$x['id']."...\n"; ob_flush();flush();}
	if($file)
	    while(!feof($file))
    		$re .= fgets($file,1024);
	
	fclose($file);
	$peers = bdec($re);
	$peers = $peers['value']['peers'];

	foreach($peers['value'] as $peer){
    	    $y['ip'] = $peer['value']['ip']['value'];
	    $y['port'] = $peer['value']['port']['value'];
	    $y['peer id'] = $peer['value']['peer id']['value'];
	    $tp[] = $y;
	}
	$x['peers'] = $tp;
	if ($verbose) {print "Found ".count($tp)." peers for torrent #".$x['id']."...\n"; print "Downloading image (if any)...\n"; ob_flush();flush();}

	if (strlen($x['image'])>5){
	    $pixels = null;
	    $img = @fopen($x['image'],"r");
	    if ($img)
		while (!feof($img))
		    $pixels .= fgets($img,4096);
	    $x['image'] = base64_encode($pixels);
	}    
    
	//adaug in array
	if ($verbose) {print "Updating torrents array...\n"; ob_flush();flush();}

	$torrents[]=array(
	    'title'=>$x['title'],
	    'category'=>$x['category'],
	    'description'=>$x['description'],
    	    'image'=>$x['image'],
	    'link'=>"http://www.torrentsmd.com/torrents/".$x['id'].".torrent",
	    'fname'=>$x['fname'],
	    'peers'=>$x['peers'],
	    'info_hash'=>$hash,
	    'torrents_id'=>$x['id'],
	    'enclosure'=>$x['enclosure'],
);

    } else {
	if ($verbose) {print "Torrent exists...\n"; ob_flush();flush();}
    }

    if ($verbose) {print "\nSkipping to next torrent...\n"; ob_flush();flush();}
}
if ($verbose) {print "\nFinished getting data!!!\n\n"; ob_flush();flush();}
if ($torrents)
foreach ($torrents as $torrent){
    $torrent = str_replace("\n","",$torrent);
    $hash = unpack("H*",$torrent['info_hash']);
    $hash = $hash[1];
    $sql = "INSERT INTO torrents values(null,'".utf8_win($torrent['title'])."','".$torrent['fname']."','".utf8_win($torrent['description'])."','".$torrent['image']."','".$torrent['link']."','".base64_encode(serialize($torrent['peers']))."','".$hash."','".$torrent['category']."','".$torrent['id']."');";
    if ($verbose) {print "Adding ".$torrent['title']." to database...\n"; ob_flush();flush();}
    mysql_query($sql) or die(mysql_error()."->\n".$sql);
}
if ($verbose) {print "\nAll jobs finished!...\n"; ob_flush();flush();}


print("$x[category] $x[description] http://www.torrentsmd.com/torrents/$x[id].torrent $x[peers] $x[title] $x[image] $x[enclosure]");
?>


Вот что - то в нети видел.) ну незнаю точно ето оно или нет..) я Так понимаю под даний движок даново мода пока нету ?
lo
loganxfi
Сообщения: 62
Зарегистрирован: 23 мар 2010, 17:23
Сообщение

Grabber Торрентов

08 июн 2010, 05:59

Блин класная идея, где бы достать такой грабер для ppkbb3cker :) Как я понял в настройках грабера прописываеться адрес трекера и разделы с которого будут грабиться раздачи, и грабиться они будут в определенный раздел твоего трекера, после чего тебе надо будет раскидывать все по соответсвующим разделам своего трекера или как? И еще, картинки с релизов (постеры и скриншоты) грабяться и сохраняються у тебя на сервере или остаються ссылки на те трекеры от куда грабили релиз?
Последний раз редактировалось loganxfi 08 июн 2010, 06:00, всего редактировалось 1 раз.
ru
ru3qx
Откуда: USSR
Поблагодарили: 4 раза
Сообщения: 315
Зарегистрирован: 25 мар 2010, 22:07
Сообщение

Grabber Торрентов

08 июн 2010, 23:17

потерпите до августа
lo
loganxfi
Сообщения: 62
Зарегистрирован: 23 мар 2010, 17:23
Сообщение

Grabber Торрентов

09 июн 2010, 07:15

ru3qx писал(а):потерпите до августа
А что будет в августе? Мего обновление,новая версия трекера?
le
levik
Откуда: Город - Герой Киев
Благодарил (а): 1 раз
Поблагодарили: 14 раз
Сообщения: 321
Зарегистрирован: 07 янв 2010, 15:45
Сообщение

Grabber Торрентов

28 июн 2010, 00:07

ru3qx писал(а):потерпите до августа
в авгесте планируетса зделать даний мод или нет ?
ru
ru3qx
Откуда: USSR
Поблагодарили: 4 раза
Сообщения: 315
Зарегистрирован: 25 мар 2010, 22:07
Сообщение

Grabber Торрентов

30 июн 2010, 21:35

levik писал(а):
ru3qx писал(а):потерпите до августа
в авгесте планируетса зделать даний мод или нет ?
вопросы к автору проэкта.
Tr
TraFF1c
Сообщения: 19
Зарегистрирован: 11 дек 2009, 23:35
Сообщение

Grabber Торрентов

08 сен 2010, 20:56

levik писал(а):

tsteal.php

Код: Выделить всё

<?
//ASTEA-S VARIABILILE
$passkey="109a0a4981bc4294c48a8775d14dbbc3";
$url = "http://announce.torrentsmd.com:443/announce.php/";
$rss = "http://torrentsmd.com/rss.xml";
$tdl = "http://www.torrentsmd.com/torrents/";
$verbose = true;
if (isset($_GET['verbose'])) $verbose = true;


########################################################################################################################
########################################################################################################################
//aici incepe codul

include("include/bittorrent.php");
include("include/benc.php");

function torrent_exists($id){
    $x = false;
    $f = @mysql_fetch_array(@mysql_query("SELECT * FROM torrents WHERE id='".$id."';"));
    if ($f && $f != null)
	$x = true;
    $f = @mysql_fetch_array(@mysql_query("SELECT * FROM torrents WHERE id='".$id."';"));
    if ($f && $f != null)
	$x = true;
    return $x;
}

function utf8_win($s){
    $s=str_replace("xD0xB0","Б",$s);  $s=str_replace("xD0x90","б",$s);
    $s=str_replace("xD0xB1","В",$s);  $s=str_replace("xD0x91","в",$s);
    $s=str_replace("xD0xB2","Ч",$s);  $s=str_replace("xD0x92","ч",$s);
    $s=str_replace("xD0xB3","З",$s);  $s=str_replace("xD0x93","з",$s);
    $s=str_replace("xD0xB4","Д",$s);  $s=str_replace("xD0x94","д",$s);
    $s=str_replace("xD0xB5","Е",$s);  $s=str_replace("xD0x95","е",$s);
    $s=str_replace("xD1x91","Ј",$s);  $s=str_replace("xD0x81","і",$s);
    $s=str_replace("xD0xB6","Ц",$s);  $s=str_replace("xD0x96","ц",$s);
    $s=str_replace("xD0xB7","Ъ",$s);  $s=str_replace("xD0x97","ъ",$s);
    $s=str_replace("xD0xB8","Й",$s);  $s=str_replace("xD0x98","й",$s);
    $s=str_replace("xD0xB9","К",$s);  $s=str_replace("xD0x99","к",$s);
    $s=str_replace("xD0xBA","Л",$s);  $s=str_replace("xD0x9A","л",$s);
    $s=str_replace("xD0xBB","М",$s);  $s=str_replace("xD0x9B","м",$s);
    $s=str_replace("xD0xBC","Н",$s);  $s=str_replace("xD0x9C","н",$s);
    $s=str_replace("xD0xBD","О",$s);  $s=str_replace("xD0x9D","о",$s);
    $s=str_replace("xD0xBE","П",$s);  $s=str_replace("xD0x9E","п",$s);
    $s=str_replace("xD0xBF","Р",$s);  $s=str_replace("xD0x9F","р",$s);
    $s=str_replace("xD1x80","Т",$s);  $s=str_replace("xD0xA0","т",$s);
    $s=str_replace("xD1x81","У",$s);  $s=str_replace("xD0xA1","у",$s);
    $s=str_replace("xD1x82","Ф",$s);  $s=str_replace("xD0xA2","ф",$s);
    $s=str_replace("xD1x83","Х",$s);  $s=str_replace("xD0xA3","х",$s);
    $s=str_replace("xD1x84","Ж",$s);  $s=str_replace("xD0xA4","ж",$s);
    $s=str_replace("xD1x85","И",$s);  $s=str_replace("xD0xA5","и",$s);
    $s=str_replace("xD1x86","Г",$s);  $s=str_replace("xD0xA6","г",$s);
    $s=str_replace("xD1x87","Ю",$s);  $s=str_replace("xD0xA7","ю",$s);
    $s=str_replace("xD1x88","Ы",$s);  $s=str_replace("xD0xA8","ы",$s);
    $s=str_replace("xD1x89","Э",$s);  $s=str_replace("xD0xA9","э",$s);
    $s=str_replace("xD1x8A","Я",$s);  $s=str_replace("xD0xAA","я",$s);
    $s=str_replace("xD1x8B","Щ",$s);  $s=str_replace("xD0xAB","щ",$s);
    $s=str_replace("xD1x8C","Ш",$s);  $s=str_replace("xD0xAC","ш",$s);
    $s=str_replace("xD1x8D","Ь",$s);  $s=str_replace("xD0xAD","ь",$s);
    $s=str_replace("xD1x8E","А",$s);  $s=str_replace("xD0xAE","а",$s);
    $s=str_replace("xD1x8F","С",$s);  $s=str_replace("xD0xAF","с",$s);
    return $s;
}


if ($verbose) {print "Downloading RSS...\n"; ob_flush();flush();}
$rss = @fopen($rss,"r") or die("Error downloading RSS.");
$xml = null;
while (!feof($rss)){
    $xml .= fgets($rss,4096);

}
fclose($rss);
if ($verbose) {print "Finished downloading RSS...\n"; print "\nParsing RSS...\n"; ob_flush();flush();}
$xml = strstr($xml,"<item>");
$items = str_replace("<item>","",split("</item>\n<item>",$xml));
//$items = array($items[0]);
foreach($items as $torrent){
    $torrent=str_replace("\n","",$torrent);
    preg_match("/<category>(.*?)<\/category>/i",$torrent,$c);
    $x['category'] = $c[1];
    
    preg_match("/<title>(.*?)<\/title>/i",$torrent,$t);
    $x['title'] = str_replace("(".$x['category'].")","",$t[1]);
    
    preg_match("/<description>(.*?)<\/description>/i",$torrent,$d);
    $x['description'] = $d[1];
    preg_match("/<enclosure url=(.*?) type=torrent/>/i",$torrent,$d1);
    $x['enclosure'] = $d1[1];
    preg_match("/<image><link>(.*?)<\/link><\/image>/i",$torrent,$i);
    $x['image'] = $i[1];
    
    preg_match("/<link>(.*?)<\/link>/i",$torrent,$tmp);
    preg_match("/id=(.*?)&/i",$tmp[1],$i);
    $x['id'] = $i[1];
    
    preg_match("/download.php\/".$x['id']."\/(.*?)\"/i",$torrent,$f);
    $x['fname'] = $f[1];
    
    $x = str_replace("<","<",$x);
    $x = str_replace(">",">",$x);
    
    if ($verbose) {print "\nFound Torrent #".$x['id']."...\n"; ob_flush();flush();}

    if (!torrent_exists($x['id'])){
        //aici scot peerurile
	$turl = $tdl.$x['id'].".torrent";
	$re = null;
	$tbody = null;    
	if ($verbose) {print "Downloading .torrent file...\n"; ob_flush();flush();}
        $tfile = @fopen($turl,"r");
	if ($tfile)
	    while (!feof($tfile))
    		$tbody .= fgets($tfile,1024);
	else
	    continue;
	if ($verbose) {print "Finished downloading torrent...\n"; ob_flush();flush();}
	$torrent = bdec($tbody);
	if ($verbose) {print "Getting hash_info...\n"; ob_flush();flush();}
	$hash = pack("H*", sha1($torrent['value']['info']['string']));

	$file = @fopen(str_replace("\n","",$url.$passkey."?info_hash=".urlencode($hash)."&peer_id=exbc%009%E0%F9P%CAv%A9%A5%23w%5C%E7%C6%D2%F6&port=17368&uploaded=0&downloaded=0&left=0&numwant=200&compact=1&no_peer_id=1&key=21436&event=stopped"),"r");
	if ($verbose) {print "Getting peers info for torrent #".$x['id']."...\n"; ob_flush();flush();}
	if($file)
	    while(!feof($file))
    		$re .= fgets($file,1024);
	
	fclose($file);
	$peers = bdec($re);
	$peers = $peers['value']['peers'];

	foreach($peers['value'] as $peer){
    	    $y['ip'] = $peer['value']['ip']['value'];
	    $y['port'] = $peer['value']['port']['value'];
	    $y['peer id'] = $peer['value']['peer id']['value'];
	    $tp[] = $y;
	}
	$x['peers'] = $tp;
	if ($verbose) {print "Found ".count($tp)." peers for torrent #".$x['id']."...\n"; print "Downloading image (if any)...\n"; ob_flush();flush();}

	if (strlen($x['image'])>5){
	    $pixels = null;
	    $img = @fopen($x['image'],"r");
	    if ($img)
		while (!feof($img))
		    $pixels .= fgets($img,4096);
	    $x['image'] = base64_encode($pixels);
	}    
    
	//adaug in array
	if ($verbose) {print "Updating torrents array...\n"; ob_flush();flush();}

	$torrents[]=array(
	    'title'=>$x['title'],
	    'category'=>$x['category'],
	    'description'=>$x['description'],
    	    'image'=>$x['image'],
	    'link'=>"http://www.torrentsmd.com/torrents/".$x['id'].".torrent",
	    'fname'=>$x['fname'],
	    'peers'=>$x['peers'],
	    'info_hash'=>$hash,
	    'torrents_id'=>$x['id'],
	    'enclosure'=>$x['enclosure'],
);

    } else {
	if ($verbose) {print "Torrent exists...\n"; ob_flush();flush();}
    }

    if ($verbose) {print "\nSkipping to next torrent...\n"; ob_flush();flush();}
}
if ($verbose) {print "\nFinished getting data!!!\n\n"; ob_flush();flush();}
if ($torrents)
foreach ($torrents as $torrent){
    $torrent = str_replace("\n","",$torrent);
    $hash = unpack("H*",$torrent['info_hash']);
    $hash = $hash[1];
    $sql = "INSERT INTO torrents values(null,'".utf8_win($torrent['title'])."','".$torrent['fname']."','".utf8_win($torrent['description'])."','".$torrent['image']."','".$torrent['link']."','".base64_encode(serialize($torrent['peers']))."','".$hash."','".$torrent['category']."','".$torrent['id']."');";
    if ($verbose) {print "Adding ".$torrent['title']." to database...\n"; ob_flush();flush();}
    mysql_query($sql) or die(mysql_error()."->\n".$sql);
}
if ($verbose) {print "\nAll jobs finished!...\n"; ob_flush();flush();}


print("$x[category] $x[description] http://www.torrentsmd.com/torrents/$x[id].torrent $x[peers] $x[title] $x[image] $x[enclosure]");
?>


Вот что - то в нети видел.) ну незнаю точно ето оно или нет..) я Так понимаю под даний движок даново мода пока нету ?

Это от ко-кого движка ?
Te
Tetrix
Сообщения: 207
Зарегистрирован: 06 июн 2010, 23:23
Сообщение

Grabber Торрентов

10 сен 2010, 13:09

ru3qx
ru3qx писал(а):потерпите до августа
Держаца больше нету сил :D спросите плиз у автора проекта или скажите (можно в личку) его контактные данные, хочу узнать на какой стадии проект, может нужен донат для ускорения реализации ;)
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Grabber Торрентов

10 сен 2010, 14:23

Проясняю последний раз .. =) а то меня уже и в ЛС замучили, у меня НЕТ и не было и пока нет в планах делать граббер торрентов, здесь
потерпите до августа
вероятно имелись ввиду внешние аннонс url, которые и были намечены на август.

Вернуться в «Вопросы, ответы и примеры решений»