public static function mainSearch($user_id, $tracker, $user) { $cookie = Database::getCookie($tracker); if (nnmclub::checkCookie($cookie)) { nnmclub::$sess_cookie = $cookie; //запускам процесс выполнения nnmclub::$exucution = TRUE; } else { nnmclub::getCookie($tracker); } if (nnmclub::$exucution) { $user = iconv("utf-8", "windows-1251", $user); $page = nnmclubSearch::getSearchPage($user, nnmclub::$sess_cookie); preg_match_all('/<a class=\\"gen\\" href=\\"tracker\\.php\\?f=\\d{3,9}\\">(.*)<\\/a>/', $page, $section); preg_match_all('/<a class=\\"(genmed|leechmed|seedmed) (topicpremod|topictitle)\\" href=\\"viewtopic\\.php\\?t=(\\d{3,9})\\"><b>(.*)<\\/b><\\/a>/', $page, $threme); for ($i = 0; $i < count($threme[1]); $i++) { Database::addThremeToBuffer($user_id, $section[1][$i], $threme[3][$i], $threme[4][$i], $tracker); } $toDownload = Database::takeToDownload($tracker); if (count($toDownload) > 0) { for ($i = 0; $i < count($toDownload); $i++) { nnmclub::$page = nnmclub::getContent($toDownload[$i]['threme_id'], nnmclub::$sess_cookie); if (!empty(nnmclub::$page)) { //находим имя торрента для скачивания if (preg_match("/download\\.php\\?id=(\\d{2,8})/", nnmclub::$page, $link)) { //сохраняем торрент в файл $torrent_id = $link[1]; if (Database::getSetting('download')) { $torrent = nnmclub::getTorrent($torrent_id, nnmclub::$sess_cookie); $client = ClientAdapterFactory::getStorage('file'); $client->store($torrent, $toDownload[$i]['threme_id'], $tracker, $toDownload[$i]['threme'], $torrent_id, time()); } //обновляем время регистрации торрента в базе Database::setDownloaded($toDownload[$i]['id']); //отправляем уведомлении о новом торренте $message = $toDownload[$i]['threme'] . ' добавлена для скачивания.'; $date = date('d M Y H:i'); Notification::sendNotification('notification', $date, $tracker, $message); } } } } } }
public static function main($id, $tracker, $name, $torrent_id, $timestamp) { $cookie = Database::getCookie($tracker); if (nnmclub::checkCookie($cookie)) { nnmclub::$sess_cookie = $cookie; //запускам процесс выполнения nnmclub::$exucution = TRUE; } else { nnmclub::getCookie($tracker); } if (nnmclub::$exucution) { nnmclub::$page = nnmclub::getContent($torrent_id, nnmclub::$sess_cookie); if (!empty(nnmclub::$page)) { //ищем на странице дату регистрации торрента if (preg_match("/<td class=\"genmed\"> (\\d{2}\\s\\D{6}\\s\\d{4}\\s\\d{2}:\\d{2}:\\d{2})<\\/td>/", nnmclub::$page, $array)) { //проверяем удалось ли получить дату со страницы if (isset($array[1])) { //если дата не равна ничему if (!empty($array[1])) { //находим имя торрента для скачивания if (preg_match("/download\\.php\\?id=(\\d{6,8})/", nnmclub::$page, $link)) { //сбрасываем варнинг Database::clearWarnings($tracker); //приводим дату к общему виду $date = nnmclub::dateStringToNum($array[1]); $date_str = $array[1]; //если даты не совпадают, перекачиваем торрент if ($date != $timestamp) { //сохраняем торрент в файл $torrent_id = $link[1]; if (Database::getSetting('download')) { $torrent = nnmclub::getTorrent($torrent_id, nnmclub::$sess_cookie); $client = ClientAdapterFactory::getStorage('file'); $client->store($torrent, $id, $tracker, $name, $torrent_id, $timestamp); } //обновляем время регистрации торрента в базе Database::setNewDate($id, $date); //отправляем уведомлении о новом торренте $message = $name . ' обновлён.'; Notification::sendNotification('notification', nnmclub::dateNumToString($date_str), $tracker, $message); } } else { //устанавливаем варнинг if (nnmclub::$warning == NULL) { nnmclub::$warning = TRUE; Errors::setWarnings($tracker, 'not_available'); } //останавливаем процесс выполнения, т.к. не может работать без кук nnmclub::$exucution = FALSE; } } else { //устанавливаем варнинг if (nnmclub::$warning == NULL) { nnmclub::$warning = TRUE; Errors::setWarnings($tracker, 'not_available'); } //останавливаем процесс выполнения, т.к. не может работать без кук nnmclub::$exucution = FALSE; } } else { //устанавливаем варнинг if (nnmclub::$warning == NULL) { nnmclub::$warning = TRUE; Errors::setWarnings($tracker, 'not_available'); } //останавливаем процесс выполнения, т.к. не может работать без кук nnmclub::$exucution = FALSE; } } else { //устанавливаем варнинг if (nnmclub::$warning == NULL) { nnmclub::$warning = TRUE; Errors::setWarnings($tracker, 'not_available'); } //останавливаем процесс выполнения, т.к. не может работать без кук nnmclub::$exucution = FALSE; } } else { //устанавливаем варнинг if (nnmclub::$warning == NULL) { nnmclub::$warning = TRUE; Errors::setWarnings($tracker, 'not_available'); } //останавливаем процесс выполнения, т.к. не может работать без кук nnmclub::$exucution = FALSE; } } }