Редактор темы

Реклама
Реклама
Реклама
Реклама

Рабочий парсер (поиск) торрент раздач для dle по заголовку новости

  • Автор темы Автор темы usergeyv
  • Дата начала Дата начала
А как от РКН спрятать в определенной новости?
так же как пи плеер прячешь. например создать доп поле чтоб не показывать торренты в новости и прописать условия на вывод блока торрентов
 
Недавно обнаружилось, что поиск на руторе не находит ничего если в поисковом запросе встречается апостроф ', а такое не часто, но встречается в оригинальных названиях зарубежных материалов, и модуль бесконечно крутит в этом случае preloader поиска торрентов. Сам модуль пофиксить не получилось, поэтому просто нашёл самый простой выход из ситуации - это через условия if, которые уже есть в ДЛЕ с версии 14.0 или 14.1. У меня получилось так:
в fullstory.tpl:
Код:
[if xfield_title_en !~ "'"][transfer=title_en] [xfvalue_title_en][/transfer][/if]
в main.tpl где выводится js код для модуля поисковая фраза title:
Код:
[xfvalue_title_ru]{transfer_title_en} ([xfvalue_year limit="4"])
Здесь у меня используется вторая версия плагина и модуль глобальных тегов ДЛЕ. Таким образом конечно точность поиска понижается.
 
Все облазил и не могу найти рабочее зеркало сайта Rutor для https сайта. Может кто подскажет, мб их можно самому как-то делать через анонимайзеры или типо того))
 
Перестал работать модуль(
 
Кое как вроде заставил парсить на 15.1, вопрос в том, как теперь скачивать .torrent файлы? 🙂 При клике на ссылки браузер ругается на Mixed Content, потому что сайт на https, а зеркало рутора на http (Рутор переехал на LIVE-RUTOR.ORG!). Попробовал подменить ссылки на внутренние через RewriteRule, это особо не помогло, Mixed Content остался. Если правой кнопкой сохранять ссылку, то качается нормально, но так делать мало кто будет. Если ссылку вручную открыть в отдельной вкладке, она тоже скачивается, но если сделать target="_blank", вкладка открывается и тут же закрывается ниче не скачивая. Когда-то давно ковырялся с одним сайтом и там я делал скачивание файла с внешнего ресурса, как будто это внутренний через nginx x-accel-redirect вроде, но это было лет 10 назад, уже все забыл.. Придумать бы что-то такое под apache, чтобы браузер думал, что файл качается напрямую с сайта и не ругался на Mixed Content, не знаете каких-нибудь вариантов?
 
meloff как починил? Он вроде не работал уже несколько лет.

По смешанному контенту - сайт на https?
 
По смешанному контенту - сайт на https?
Ну.. хотелось бы
как починил? Он вроде не работал уже несколько лет.
Пришлось немного в код вникнуть, понять что откуда берется. Так то я не особо разбираюсь, но вроде заработало. Вот мой torrent_rutor.php
Код:
<?php

@session_start();
@ob_start();
@ob_implicit_flush(0);

@error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
@ini_set('display_errors', false);
@ini_set('html_errors', false);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE);

define('DATALIFEENGINE', true);

$member_id = false;
$is_logged = false;

define('ROOT_DIR', dirname(__FILE__).'/../..');
define('ENGINE_DIR', ROOT_DIR.'/engine');

include_once ENGINE_DIR . '/classes/plugins.class.php';

@include (ENGINE_DIR.'/data/config.php');
require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/modules/functions.php';

// function debug_to_console($data) {
//     $output = $data;
//     if (is_array($output))
//         $output = implode(',', $output);

//     echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
// }

function UTF8toCP1251($str)
{
    static $table = array("\xD0\x81" => "\xA8", // Ё
    "\xD1\x91" => "\xB8", // ё
    // украинские символы
    "\xD0\x8E" => "\xA1", // Ў (У)
    "\xD1\x9E" => "\xA2", // ў (у)
    "\xD0\x84" => "\xAA", // Є (Э)
    "\xD0\x87" => "\xAF", // Ї (I..)
    "\xD0\x86" => "\xB2", // I (I)
    "\xD1\x96" => "\xB3", // i (i)
    "\xD1\x94" => "\xBA", // є (э)
    "\xD1\x97" => "\xBF", // ї (i..)
    // чувашские символы
    "\xD3\x90" => "\x8C", // &#1232; (А)
    "\xD3\x96" => "\x8D", // &#1238; (Е)
    "\xD2\xAA" => "\x8E", // &#1194; (С)
    "\xD3\xB2" => "\x8F", // &#1266; (У)
    "\xD3\x91" => "\x9C", // &#1233; (а)
    "\xD3\x97" => "\x9D", // &#1239; (е)
    "\xD2\xAB" => "\x9E", // &#1195; (с)
    "\xD3\xB3" => "\x9F", // &#1267; (у)
    );
    return preg_replace('#([\xD0-\xD1])([\x80-\xBF])#se', 'isset($table["$0"]) ? $table["$0"] :
                       chr(ord("$2")+("$1" == "\xD0" ? 0x30 : 0x70))
                      ', $str
    );
}



function search_torrent($query)
{

$query = str_replace(" ", "+", $query);
// debug_to_console($query);
$linksearch = 'http://37.1.206.162/search/0/0/100/0/'.$query.'';
// debug_to_console($linksearch);
$result = dle_cache('rutor_'.md5($query).'',$config['skin']); //Берем данные из кеша если он есть
if(!$result){ //Если кеша нет - парсим страницу результатов поиска и потом создаем кеш

$result = file_get_contents($linksearch);

// $result = preg_replace('/\t+/', '', $result);
$result = preg_replace('/\r|\n/', '', $result);
// $result = UTF8toCP1251($result);
// echo htmlspecialchars($result);

$resultAll = $result;

    $find2 = "";

    // echo($result);

    $p1 = strpos($result, "<table width=\"100%\"><tr class=\"backgr\">");
    $p2 = strpos($result, "</table><b>Страницы");
    $result = substr($result, $p1, $p2 - $p1);

// debug_to_console($p1);
// debug_to_console($p2);
// print($result);
create_cache('rutor_'.md5($query).'',$result,$config['skin']);} //Создаем кеш если его нет

  
preg_match_all('#<a class="downgif" href="/parse/d.rutor.org/download/(.[0-9]*)"><img src="/kw/i/d.gif" alt="D" /></a>(.*)<a href="/torrent/(.*)">(.*)</a></td>(.*)<td align="right">([0-9]*..?[0-9]+.?)&nbsp;(.[A-Z]*)</td><td align="center"><span class="green"><img src="/kw/t/arrowup.gif" alt="S" />&nbsp;(.[0-9]*)</span>&nbsp;<img src="/kw/t/arrowdown.gif" alt="L" /><span class="red">&nbsp;(.[0-9]*)</span></td></tr>#Uis', $result, $find);


    $count = intval(count($find['1']));
    $i = -1;
    $find2 = "";
    while ($i < $count - 1) {
    if($is==10)break;
        $i++;
        $find['2'][$i] = str_replace("/s/i/m.png", "/uploads/magnet.png", $find['2'][$i]);
                $find['2'][$i] = str_replace("magnet:", "magnet:", $find['2'][$i]);
        $is = $i + 1;
        $find2 .= <<<HTML
<tr>
<td><center>{$find['2'][$i]}<a href='http://37.1.206.162/parse/d.rutor.org/download/{$find['1'][$i]}'><img src='/uploads/download.png'></a><center></td>
<td class='namtoreka'><div class='bbs'>{$find['4'][$i]}</div></td>
<td class='sizepiza'>{$find['6'][$i]}&nbsp;{$find['7'][$i]}</td>
<td class='sirazd'>{$find['8'][$i]}</td>
<td class='sikach'>{$find['9'][$i]}</td>
</tr>


HTML;

    }


    if (!$find2 or $find2 == "") {
        $finds = "<p style=\"text-align: center;\"><span style=\"font-size: medium;\"><strong><span style=\"color: #ff0000;\">Внимание:</span></strong> Не удалось найти раздачу, скорее всего материала нет на открытых трекерах! Воспользуйтесь ссылками ниже, и вам обязательно повезет, либо скачайте материал по прямым ссылкам с нашего сайта!</span></p>";
        // $finds = "";
    } else {
        $finds = <<<HTML
                                    <div id='torrents_list'>
                                        <div class='naiden-torrents'>Hайдено раздач: <span id='count'>{$is}</span>  <i id='doreload' class='fa fa-spinner fa-spin' style='display: none;'></i>
                                        </div>
                                        <table class='restable' id='restable_sort'>
                                            <thead>
                                                <tr class='restable_h'>
                                                    <th>Скачать</th>
                                                    <th>Название</th>
                                                    <th>Размер</th>
                                                    <th><i class='fa fa-upload fa-lg tip' title='' data-original-title='Раздают'></i></th>
                                                    <th><i class='fa fa-download fa-lg tip' title='' data-original-title='Качают'></i></th>
                                                </tr>
                                            </thead>
                                            <tbody>

{$find2}
        </tbody>
    </table>
</div>



HTML;
    }

    return ($finds);


}


$title = trim(strip_tags($_POST['title']));

@header("Content-type: text/html; charset=".$config['charset']);
echo search_torrent($title);

Тут главное что я preg_replace добавил который вычищает лишние табуляции и переносы, которые есть на этом зеркале, может быть их и нет на оригинальном руторе, но я на локальном хостинге тестирую, а работает у меня без танцев только это зеркало. И в preg_match_all я немножко что-то поменял, т.к. пути файлов не сходились вроде. А и функцию debug_to_console можно убрать, я просто проблемы ей отлавливал (вроде закоментировал все лишнее).
 

Вложения

  • Screenshot 2022-06-30 172626.png
    Screenshot 2022-06-30 172626.png
    39 КБ · Просмотры: 38
Последнее редактирование:
Вот только всего пришлось менять, да с установкой, да с тегами, да и архив уже потерялся, только пара xml файлов осталась.
Обновить бы, да уже не помню ничего, где и что вставлять)))
Нужен новый архив с правками и полной инстрйкцией заново ))
 
Обновить бы, да уже не помню ничего, где и что вставлять)))

просто замени содержимое файла в engine/ajax/, может сработает. У меня не срабатывает на сервере с NL, может рутор его блокировать стал, пока некогда особо разбираться в этом.
 
Подскажите как заставить работать скачивание торрентов и поиск раздач. Стоит dle 11.1
По поиску раздая постоянно идет поиск, а по ссылке на скачивание перекидывает на http://www.stopvirus.link/donow/downloadrutor.php?d3d3LnN0b3B2aXJ1cy5saW5r=916792 (есть код в шаблоне show.full.php, но как его расшифровать я не понял)
 

Вложения

Проверь, я поправил но не проверил
 

Вложения

Проверь, я поправил но не проверил
Что то не, так же осталось. Пишет, что раздач не нашло. Попозже с аяксом поэксперементирую, там имеет значение, где он.
Хотя может с источника не отдаёт, может через клауд фильтруется. Если только пробовать замаскироваться под реальный браузер, для запросов.
 
Я думаю проблема в preg_match_all, проверить нет возможности, делаю на глаз, попробуй так
забыл в ссылках http удалить
 

Вложения

Похожие темы Последние темы Популярные темы

Назад
Сверху