|
#1
|
||||
|
||||
Mega Scrape
HTML Code:
ALTER TABLE torrents ADD updated enum('0','1') NOT NULL default '0'; HTML Code:
<?php require_once("backend/functions.php"); require_once("backend/BDecode.php"); require_once("backend/parse.php"); dbconn(false); set_time_limit(0); $interval = 800; // Rescrape torrents every x seconds. (Default: 2 days) $ts = gmtime() - $interval; $res = mysql_query("SELECT id, info_hash FROM torrents WHERE external = 'yes' AND last_action <= FROM_UNIXTIME($ts) ORDER BY last_action DESC LIMIT 1"); echo "SELECT id, info_hash FROM torrents WHERE external = 'yes' AND last_action <= FROM_UNIXTIME($ts) ORDER BY last_action DESC LIMIT 1"; $count = get_row_count("torrents", "WHERE external = 'yes' AND last_action <= FROM_UNIXTIME($ts)"); while ($row = mysql_fetch_array($res)) { $tres = mysql_query("SELECT `url` FROM `announce` WHERE `torrent` = $row[id]"); $annlist = array(); while ($trow = mysql_fetch_array($tres)) { $annlist[] = $trow["url"]; } $seeders = $leechers = $downloaded = null; echo "Info_Hash: $row[info_hash] "; foreach ($annlist as $ann) { $tracker = explode("/", $ann); $path = array_pop($tracker); $oldpath = $path; $path = preg_replace("/^announce/", "scrape", $path); $tracker = implode("/", $tracker)."/".$path; if ($oldpath == $path) { echo " <B>$ann</B>: Scrape not supported. "; continue; } $stats = torrent_scrape_url($tracker, $row["info_hash"]); if ($stats['seeds'] != -1) { $seeders += $stats['seeds']; $leechers += $stats['peers']; $downloaded += $stats['downloaded']; echo " <B>$ann</B> "; echo "Seeders: $stats[seeds] "; echo "Leechers: $stats[peers] "; echo "Downloaded: $stats[downloaded] "; mysql_query("UPDATE `announce` SET `online` = 'yes', `seeders` = $stats[seeds], `leechers` = $stats[peers], `times_completed` = $stats[downloaded] WHERE `url` = ".sqlesc($ann)." AND `torrent` = $row[id]"); } else { echo " <B>$ann</B>: Tracker timeout. "; mysql_query("UPDATE `announce` SET `online` = 'no' WHERE `url` = ".sqlesc($ann)." AND `torrent` = $row[id]"); } } if ($seeders !== null){ echo " <B>Totals:</B> "; echo "Seeders: $seeders "; echo"Leechers: $leechers "; echo "Completed: $downloaded "; mysql_query("UPDATE torrents SET leechers='".$leechers."', seeders='".$seeders."',times_completed='".$downloaded."',last_action= '".get_date_time()."',visible='yes' WHERE id='".$row['id']."'"); }else{ echo "All trackers timed out. "; mysql_query("UPDATE torrents SET last_action= '".get_date_time()."' WHERE id='".$row['id']."'"); } } ?> <script language="JavaScript"> //Refresh page script- By Brett Taylor (glutnix@yahoo.com.au) //Modified by Dynamic Drive for NS4, NS6+ //Visit http://www.dynamicdrive.com for this script //configure refresh interval (in seconds) <? if ($count) echo "var countDownInterval=6;"; else echo "var countDownInterval=900;"; // No torrents to scrape, refresh in 15mins ?> //configure width of displayed text, in px (applicable only in NS4) var c_reloadwidth=200 </script> <ilayer id="c_reload" width=&{c_reloadwidth}; ><layer id="c_reload2" width=&{c_reloadwidth}; left=0 top=0></layer></ilayer> <script> var countDownTime=countDownInterval+1; function countDown(){ countDownTime--; if (countDownTime <=0){ countDownTime=countDownInterval; clearTimeout(counter) window.location.reload() return } if (document.all) //if IE 4+ document.all.countDownText.innerText = countDownTime+" "; else if (document.getElementById) //else if NS6+ document.getElementById("countDownText").innerHTML=countDownTime+" " else if (document.layers){ //CHANGE TEXT BELOW TO YOUR OWN document.c_reload.document.c_reload2.document.write('Next <a href="java script:window.location.reload()">refresh</a> in <b id="countDownText">'+countDownTime+' </b> seconds') document.c_reload.document.c_reload2.document.close() } counter=setTimeout("countDown()", 1000); } function startit(){ if (document.all||document.getElementById) //CHANGE TEXT BELOW TO YOUR OWN document.write('Next <a href="java script:window.location.reload()">refresh</a> in <b id="countDownText">'+countDownTime+' </b> seconds') countDown() } if (document.all||document.getElementById) startit() else window.onload=startit </script> |
#2
|
|||
|
|||
Quote:
|
#3
|
||||
|
||||
re
I know it puts a lot of load on the server
|
#4
|
|||
|
|||
I think it's stupid to burden a private tracker with this.
|
#5
|
|||
|
|||
a better way to do this is via cron and you can schedule it at different interval of times
__________________
Need HELP!? I can install:
|
#6
|
|||
|
|||
Quote:
but does it make sense on a private server? |
#7
|
|||
|
|||
TT is used for semi-private, public sites
__________________
Need HELP!? I can install:
|
#8
|
|||
|
|||
its better to use cronjob to update all old torrents in the system, it will do a nice job in background
Bump: i already have this feature in my tt
__________________
i do custom mods in xbtitfm and torrenttrader for $$, PM me for details. |
|
|