Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

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

Тема в разделе "Модули DLE", создана пользователем usergeyv, 4 июл 2017.

04.07.17 в 20:43
24.11.23 в 14:58
174
23.772
0
  1. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.205 / 74 / -0
    так же как пи плеер прячешь. например создать доп поле чтоб не показывать торренты в новости и прописать условия на вывод блока торрентов
     
  2. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.205 / 74 / -0
    Недавно обнаружилось, что поиск на руторе не находит ничего если в поисковом запросе встречается апостроф ', а такое не часто, но встречается в оригинальных названиях зарубежных материалов, и модуль бесконечно крутит в этом случае 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"])
    Здесь у меня используется вторая версия плагина и модуль глобальных тегов ДЛЕ. Таким образом конечно точность поиска понижается.
     
    • Полезно Полезно x 1
  3. Hell1g

    Hell1g Бывалый

    Регистрация:
    16 май 2018
    Сообщения:
    243
    Лучших ответов:
    0
    Рейтинги:
    +42 / 1 / -0
    Все облазил и не могу найти рабочее зеркало сайта Rutor для https сайта. Может кто подскажет, мб их можно самому как-то делать через анонимайзеры или типо того))
     
  4. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.205 / 74 / -0
    Hell1g сервер не в РФ находится?
     
  5. Hell1g

    Hell1g Бывалый

    Регистрация:
    16 май 2018
    Сообщения:
    243
    Лучших ответов:
    0
    Рейтинги:
    +42 / 1 / -0
    В Нидерах
     
  6. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.205 / 74 / -0
    обратись в iCooLER он мне скрипт для этой цели писал, работает отлично, но сливать его не буду без разрешения автора. может договоритесь с ним.
     
  7. Hell1g

    Hell1g Бывалый

    Регистрация:
    16 май 2018
    Сообщения:
    243
    Лучших ответов:
    0
    Рейтинги:
    +42 / 1 / -0
    Спасибо:)
     
  8. Fixa

    Fixa Новичок

    Регистрация:
    12 ноя 2016
    Сообщения:
    34
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    Перестал работать модуль(
     
  9. meloff

    meloff Зелёный

    Регистрация:
    5 окт 2021
    Сообщения:
    5
    Лучших ответов:
    0
    Рейтинги:
    +2 / 0 / -0
    Кое как вроде заставил парсить на 15.1, вопрос в том, как теперь скачивать .torrent файлы? :) При клике на ссылки браузер ругается на Mixed Content, потому что сайт на https, а зеркало рутора на http (Рутор переехал на LIVE-RUTOR.ORG!). Попробовал подменить ссылки на внутренние через RewriteRule, это особо не помогло, Mixed Content остался. Если правой кнопкой сохранять ссылку, то качается нормально, но так делать мало кто будет. Если ссылку вручную открыть в отдельной вкладке, она тоже скачивается, но если сделать target="_blank", вкладка открывается и тут же закрывается ниче не скачивая. Когда-то давно ковырялся с одним сайтом и там я делал скачивание файла с внешнего ресурса, как будто это внутренний через nginx x-accel-redirect вроде, но это было лет 10 назад, уже все забыл.. Придумать бы что-то такое под apache, чтобы браузер думал, что файл качается напрямую с сайта и не ругался на Mixed Content, не знаете каких-нибудь вариантов?
     
  10. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.205 / 74 / -0
    meloff как починил? Он вроде не работал уже несколько лет.

    По смешанному контенту - сайт на https?
     
  11. meloff

    meloff Зелёный

    Регистрация:
    5 окт 2021
    Сообщения:
    5
    Лучших ответов:
    0
    Рейтинги:
    +2 / 0 / -0
    Ну.. хотелось бы
    Пришлось немного в код вникнуть, понять что откуда берется. Так то я не особо разбираюсь, но вроде заработало. Вот мой 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 можно убрать, я просто проблемы ей отлавливал (вроде закоментировал все лишнее).
     

    Вложения:

    #151 meloff, 30 июн 2022
    Последнее редактирование: 30 июн 2022
    • Нравится Нравится x 2
  12. Олег Lego

    Олег Lego Местный

    Регистрация:
    11 май 2020
    Сообщения:
    1.788
    Лучших ответов:
    1
    Рейтинги:
    +430 / 177 / -0
    Вот только всего пришлось менять, да с установкой, да с тегами, да и архив уже потерялся, только пара xml файлов осталась.
    Обновить бы, да уже не помню ничего, где и что вставлять)))
    Нужен новый архив с правками и полной инстрйкцией заново ))
     
  13. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.205 / 74 / -0
    просто замени содержимое файла в engine/ajax/, может сработает. У меня не срабатывает на сервере с NL, может рутор его блокировать стал, пока некогда особо разбираться в этом.
     
  14. Alexandr778899

    Alexandr778899 Зелёный

    Регистрация:
    27 мар 2023
    Сообщения:
    2
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    Подскажите как заставить работать скачивание торрентов и поиск раздач. Стоит dle 11.1
    По поиску раздая постоянно идет поиск, а по ссылке на скачивание перекидывает на http://www.stopvirus.link/donow/downloadrutor.php?d3d3LnN0b3B2aXJ1cy5saW5r=916792 (есть код в шаблоне show.full.php, но как его расшифровать я не понял)
     
  15. Олег Lego

    Олег Lego Местный

    Регистрация:
    11 май 2020
    Сообщения:
    1.788
    Лучших ответов:
    1
    Рейтинги:
    +430 / 177 / -0
    Что то перестало парсить совсем (.
     
  16. chuvak

    chuvak Бывалый

    Регистрация:
    14 окт 2021
    Сообщения:
    202
    Лучших ответов:
    1
    Рейтинги:
    +50 / 17 / -0
    У рутора бывают мелкие изменения в дизайне
    Скинь модуль, подправлю
     
    #156 chuvak, 13 май 2023
    Последнее редактирование: 13 май 2023
  17. Олег Lego

    Олег Lego Местный

    Регистрация:
    11 май 2020
    Сообщения:
    1.788
    Лучших ответов:
    1
    Рейтинги:
    +430 / 177 / -0
    Вроде как крайний вариант
     

    Вложения:

  18. chuvak

    chuvak Бывалый

    Регистрация:
    14 окт 2021
    Сообщения:
    202
    Лучших ответов:
    1
    Рейтинги:
    +50 / 17 / -0
    Проверь, я поправил но не проверил
     

    Вложения:

  19. Олег Lego

    Олег Lego Местный

    Регистрация:
    11 май 2020
    Сообщения:
    1.788
    Лучших ответов:
    1
    Рейтинги:
    +430 / 177 / -0
    Что то не, так же осталось. Пишет, что раздач не нашло. Попозже с аяксом поэксперементирую, там имеет значение, где он.
    Хотя может с источника не отдаёт, может через клауд фильтруется. Если только пробовать замаскироваться под реальный браузер, для запросов.
     
  20. chuvak

    chuvak Бывалый

    Регистрация:
    14 окт 2021
    Сообщения:
    202
    Лучших ответов:
    1
    Рейтинги:
    +50 / 17 / -0
    Я думаю проблема в preg_match_all, проверить нет возможности, делаю на глаз, попробуй так
    забыл в ссылках http удалить
     

    Вложения:

    • Нравится Нравится x 1
    • Лучший Лучший x 1
Яндекс.Метрика