Advertisement
Guest User

Untitled

a guest
Jan 17th, 2011
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.88 KB | None | 0 0
  1. <meta http-equiv="Content-Type" content="text/html; charset=cp1251" />
  2. <?php
  3. include_once("config/db.php");
  4. mysql_query("SET NAMES cp1251");
  5. include_once("functions.php");
  6. include_once("config/cfg.php");
  7.  
  8. //мониторинг тем
  9. function monitoring($id, $tracker, $name, $torrent_id, $timestamp) {
  10.     //получаем страницу для парсинга
  11.     $get = get($tracker, $torrent_id);
  12.     //пишем в лог
  13.     global $get_log;
  14.     if ($get_log) {
  15.         write_get($tracker, $get);
  16.     }
  17.    
  18.     if ($tracker == "rutracker.org") {
  19.         //ищем на странице дату регистрации торрента
  20.         preg_match_all("/<span title=\"Зарегистрирован\">\[ (.+) \]<\/span>/", $get, $array);
  21.         //проверяем удалось ли получить дату со страницы
  22.         if (isset($array[1][0])) {
  23.             //если дата не равна ничему
  24.             if ($array[1][0] != '') {
  25.                 //приводим дату к общему виду
  26.                 $date = str_replace("-", " ", $array[1][0]);
  27.                 $date = substr($date, 0, 7) . ' 20' . substr($date, 7);
  28.                 //если даты не совпадают, перекачиваем торрент
  29.                 if ($date != $timestamp)    {
  30.                     //получаем заголовок
  31.                     $headers = headers_rutracker($tracker, $torrent_id);
  32.                     //получаем торрент
  33.                     $download = file_get_contents("http://dl.rutracker.org/forum/dl.php?t={$torrent_id}", false, $headers);
  34.                     //сохраняем торрент в файл
  35.                     write_file($tracker, $torrent_id, $download);
  36.                     //обновляем время регистрации торрента в базе
  37.                     update($date, $id);                
  38.                     //отправляем уведомлении о новом торренте                               
  39.                     send_mail($name, $date);       
  40.                 }
  41.             }
  42.         }
  43.     }
  44.    
  45.     if ($tracker == "nnm-club.ru") {
  46.         //ищем на странице дату регистрации торрента
  47.         preg_match_all("/<td class=\"genmed\">&nbsp;(\d{2}\s\D{3}\s\d{4}\s\d{2}:\d{2}:\d{2})<\/td>/", $get, $array);
  48.         //проверяем удалось ли получить дату со страницы
  49.         if (isset($array[1][0])) {
  50.             //если дата не равна ничему
  51.             if ($array[1][0] != '') {
  52.                 //приводим дату к общему виду
  53.                 $date = substr($array[1][0], 0, -3);
  54.                 //если даты не совпадают, перекачиваем торрент
  55.                 if ($date != $timestamp)    {
  56.                     //находим имя торрента для скачивания
  57.                     preg_match_all("/download.php\?id=(\d{6})/", $get, $array2);
  58.                         //получаем заголовок
  59.                         $headers = headers($tracker);
  60.                         //получаем торрент
  61.                         $download = file_get_contents("http://nnm-club.ru/forum/download.php?id={$array2[1][0]}", false, $headers);
  62.                         //сохраняем торрент в файл
  63.                         write_file($tracker, $torrent_id, $download);
  64.                         //обновляем время регистрации торрента в базе
  65.                         update($date, $id);    
  66.                         //отправляем уведомлении о новом торренте                                           
  67.                         send_mail($name, $date);
  68.                 }
  69.             }
  70.         }
  71.     }
  72.  
  73. }
  74.  
  75. //слежение за сериалами
  76. function search($id, $name, $hd, $tracker) {
  77. global $path_to_torrent;
  78. global $get_log;
  79.     //заменяем пробелы в имени на точки
  80.     $name_dot = str_replace(" ", ".", $name);
  81.  
  82.     if ($tracker == "lostfilm.tv") {
  83.         //поучаем ленту RSS
  84.         $lostfilm = file_get_contents("http://www.lostfilm.tv/rssdd.xml");
  85.         //пишем в лог
  86.         if ($get_log) {
  87.             write_get($tracker, $lostfilm);
  88.         }
  89.         if ($hd == "true") {
  90.             $hd = ".(HD|720p)";
  91.         }
  92.         //ищем нужные нам сериалы
  93.         preg_match_all("/http:\/\/lostfilm.tv\/download.php\/[0-9]{4}\/{$name_dot}.(\D[0-9]{2}\.?\D[0-9]{2}).rus{$hd}.lostfilm.TV.\D{3}.torrent/i", $lostfilm, $array);
  94.         //если удалось найти
  95.         if (isset($array[0])) {
  96.             //разбираем массив с именами файлов
  97.             foreach ($array[0] as $key => $val) {
  98.                 //получаем заголовок
  99.                 $headers = headers($tracker);
  100.                 //получаем торрент
  101.                 $download = file_get_contents($val, false, $headers);
  102.                 //разбираем массив с номером сезона и серией
  103.                 foreach ($array[1] as $key => $val) {
  104.                     $filename = $name_dot.".".$val;
  105.                     //если файла не существует
  106.                     if (!file_exists("{$path_to_torrent}[{$tracker}]_{$filename}.torrent")) {
  107.                         //сохраняем торрент в файл
  108.                         write_file($tracker, $filename, $download);
  109.                         //определяем дату создания торрента и записываем в базу
  110.                         $date = file_date($id, $tracker, $filename);
  111.                         send_mail($name, $date);
  112.                     }
  113.                 }
  114.             }
  115.         }
  116.     }
  117.    
  118.     if ($tracker == "novafilm.tv") {
  119.         //поучаем ленту RSS
  120.         $novafilm = file_get_contents("http://novafilm.tv/rss/rssd.xml");
  121.         //пишем в лог
  122.         if ($get_log) {
  123.             write_get($tracker, $novafilm);
  124.         }
  125.         //ищем ссылки
  126.         preg_match_all("/<link>(.+)<\/link>/", $novafilm, $array);
  127.         //разбираем массив с ссылками
  128.         foreach ($array[1] as $key => $val) {
  129.             //ищем нужные нам сериалы
  130.             if (preg_match("/{$name_dot}/i", $val, $matches) != false) {   
  131.                 $link = nova($hd, $val);
  132.                 if (isset($link)) {
  133.                     //получаем заголовок
  134.                     $headers = headers($tracker);
  135.                     //получаем торрент
  136.                     $download = file_get_contents($link, false, $headers);
  137.                     //определяем номер сезона и серии
  138.                     preg_match("/s[0-9]{2}e[0-9]{2}/", $link, $matches);
  139.                     $filename = $name_dot.".".$matches[0];
  140.                     //если файла не существует
  141.                     if (!file_exists("{$path_to_torrent}[{$tracker}]_{$filename}.torrent")) {
  142.                         //сохраняем торрент в файл
  143.                         write_file($tracker, $filename, $download);
  144.                         //определяем дату создания торрента и записываем в базу
  145.                         $date = file_date($id, $tracker, $filename);
  146.                         send_mail($name, $date);
  147.                     }
  148.                 }      
  149.             }
  150.         }
  151.     }  
  152.    
  153. }
  154. //запускаем счётчик
  155. $time_start = microtime(1);
  156. //получаем список торрентов из базы и запускаем работу
  157. $torrents = mysql_query("SELECT * FROM `torrent` ORDER BY `id`");
  158. while (list($id, $tracker, $name, $hd, $torrent_id, $timestamp) = mysql_fetch_row($torrents)) {
  159.     if ($tracker == "nnm-club.ru" || $tracker == "rutracker.org") {
  160.         monitoring($id, $tracker, $name, $torrent_id, $timestamp);
  161.     }
  162.     if ($tracker == "lostfilm.tv" || $tracker == "novafilm.tv") {
  163.         search($id, $name, $hd, $tracker);
  164.     }
  165. }
  166. //останавливаем счётчик
  167. $time_end = microtime(1);
  168. //вычисляем прошедшее время
  169. $time = $time_end - $time_start;
  170. //записываем время в лог
  171. write_time($time);
  172. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement