Иконка ресурса

NextGen Парсер раздач v1.1.1

Нет прав для скачивания

belomaxorka

Разработчик
Администратор
belomaxorka добавил(а) новый ресурс:

NextGen Парсер раздач - Многофункциональный парсер раздач по ссылке.

Описание: Парсер раздач по ссылке. Код парсера написан очень хорошо и добавление новых парсеров делается очень просто (посмотрите код и поймете).
Совместимость: все версии движка.

Достоинства:
  • Имеется поддержка трекеров с авторизацией
  • Имеется система прав доступа к парсеру (см. конфиг)
  • Имеется встроенная поддержка плеера BBCode: Фильм по ID
  • Легко расширяется новым функционалом...

Узнать больше об этом ресурсе...
 

belomaxorka

Разработчик
Администратор
Инструкция по установке парсера на TorrentPier Cattle

Открыть файл library/includes/parser/functions.php и найти:
PHP:
// Раскомментировать для версий v2.4.0 и выше
Строчки ниже раскомментируйте:

PHP:
// $tor = \Arokettu\Bencode\Bencode::decode($torrent, dictType: \Arokettu\Bencode\Bencode\Collection::ARRAY);
// $info_hash = pack('H*', sha1(\Arokettu\Bencode\Bencode::encode($tor['info'])));
 

belomaxorka

Разработчик
Администратор

belomaxorka

Разработчик
Администратор
Как добавить второй трекер? Есть настройки для парсинга трекера с движком TP?
Есть настройки, но всё отсносительно, даже на одном движке. Ниже примерные настройки для движка TorrentPier v2.1.4 и выше.

Примерно так:
PHP:
'имя трекера' => array(
    'enabled' => true,
    'auth' => true,
    'regex' => "/http:\/\/тут адрес.ru\/viewtopic.php\?t=/",
    'login_url' => 'http://тут адрес.ru/login.php',
    'dl_url' => 'http://тут адрес.ru/dl.php?id=',
    'login_input_name' => 'login_username',
    'password_input_name' => 'login_password',
    'target_element' => '<p class="small">',
),
Это добавить в массив $trackers в файле release.php

PHP:
'имя трекера' => array('login' => '', 'pass' => ''),
Это добавить в
'auth' => array() в конфиге находится

Создать файл с названием 'имя трекера.php' в library/includes/parser/
Примерно с таким содержимым:
PHP:
<?php
/**
 * --------------------------------------------------------
 * Парсер раздач. Специально для TorrentPier
 *
 * @link https://torrentpier.com/
 * @license MIT License
 * @author Участники torrentpier.com, Ральф, belomaxorka
 * --------------------------------------------------------
 */

if (!defined('BB_ROOT')) die(basename(__FILE__));

function имя трекера($text)
{
    // ------------------- Get title -------------------
    preg_match("#<title>([\s\S]*?) ::.*?</title>#", $text, $matches);
    $title = $matches[1];

    // ------------------- Get download link -------------------
    preg_match('#<a href="dl.php\?id=(.*?)" class="genmed">#', $text, $matches);
    $torrent = $matches[1];

    // ------------------- Get content -------------------
    $pos = strpos($text, '<span id="pp_');
    $text = substr($text, $pos);
    $pos = strpos($text, '<div id="pc_');
    $text = substr($text, 0, $pos);
    $text = preg_replace('/<span id="pp_.*?">/', '', $text);

    $text = str_replace('<div class="c-wrap">', '', $text);
    $text = str_replace('<div class="q-wrap">', '', $text);
    $text = str_replace('<ul>', '[list]', $text);
    $text = str_replace('</ul>', '[/list]', $text);
    $text = str_replace('<li>', "\n[*]", $text);
    $text = str_replace('<span class="post-hr">-</span>', "[hr]", $text);
    $text = str_replace('<span class="post-br"><br /></span>', "[br]", $text);
    $text = preg_replace('/<span class="post-b">([^<]*?)<(?=\/)\/span>/', '[b]$1[/b]', $text);
    $text = preg_replace('/<span class="post-u">([^<]*?)<(?=\/)\/span>/', '[u]$1[/u]', $text);
    $text = preg_replace('/<span class="post-i">([^<]*?)<(?=\/)\/span>/', '[i]$1[/i]', $text);
    $text = preg_replace('/<span class="post-s">([^<]*?)<(?=\/)\/span>/', '[s]$1[/s]', $text);
    // ниже ваши регулярные выражения, замены и прочее...

    return array(
        'title' => $title,
        'torrent' => $torrent,
        'content' => strip_tags(html_entity_decode($text))
    );
}

Данный код прекрасно спарсил тестовую раздачу с демо сайта. Результат точь в точь.
 
Последнее редактирование:

belomaxorka

Разработчик
Администратор
Как добавить второй трекер? Есть настройки для парсинга трекера с движком TP?
Если напишите свой парсер с какого-либо ресурса, то пожалуйста опубликуйте его как дополнение к моду, или скиньте тут с инструкцией на примере той что выше.
 

belomaxorka

Разработчик
Администратор
belomaxorka обновил(а) ресурс NextGen Парсер раздач новой записью:

Обновление v1.1.1

  • Небольшие улучшения инструкции
  • Исправлена небольшая ошибка в работе системы прав доступа
  • В настройки добавлена секция для полноценной настройки прокси соединения

Узнать больше об этом обновлении...
 

belomaxorka

Разработчик
Администратор
Подробное описание настроек парсера в $trackers

Данный шаблон можно использовать при добавлении своего парсера
PHP:
'название_трекера' => array(
    'enabled' => true, // включен (true) или выключен (false) парсер
    'auth' => false, // используется ли обязательная авторизация на ресурсе (опциональный)
    'regex' => '', // регулярное выражение для валидации URL адреса раздачи
    'login_url' => 'http://example.com/login.php', // ссылка на страницу с авторизацией (необходимо если включен 'auth')
    'login_input_name' => 'username', // названия поля в форме, в котором указывается логин (необходимо если включен 'auth')
    'password_input_name' => 'password', // названия поля в форме, в котором указывается пароль (необходимо если включен 'auth')
    'login_has_error_element' => 'input[name="password"]', // элемент по которому будем определять, что авторизация не прошла успешно (необходимо если включен 'auth')
    'target_element' => 'div.some-class', // HTML элемент содержащий текст раздачи
    'redirect' => array( // (опциональный)
        'from' => array('http://example1.com/', 'http://example2.com/', 'http://example3.com/'), // с каких адресов делать переадресацию
        'to' => 'http://example.com/' // адрес на который будет происходить переадресация (должен совпадать с тем, что указан в ключе 'regex')
    ),
),
// тут мог бы быть ещё один парсер :D
 
Последнее редактирование:

Pole

Пользователь
belomaxorka, можете показать код для парсинга torrentpier.duckdns.org, тот что выше не работает. Не могу спарсить тестовую раздачу.

Ошибка Не удается получить торрент-файл. Вот ID:
 

belomaxorka

Разработчик
Администратор
Есть настройки, но всё отсносительно, даже на одном движке. Ниже примерные настройки для движка TorrentPier v2.1.4 и выше.

Примерно так:
PHP:
'имя трекера' => array(
    'enabled' => true,
    'auth' => true,
    'regex' => "/http:\/\/тут адрес.ru\/viewtopic.php\?t=/",
    'login_url' => 'http://тут адрес.ru/login.php',
    'dl_url' => 'http://тут адрес.ru/dl.php?id=',
    'login_input_name' => 'login_username',
    'password_input_name' => 'login_password',
    'target_element' => '<p class="small">',
),
Это добавить в массив $trackers в файле release.php

PHP:
'имя трекера' => array('login' => '', 'pass' => ''),
Это добавить в
'auth' => array() в конфиге находится

Создать файл с названием 'имя трекера.php' в library/includes/parser/
Примерно с таким содержимым:
PHP:
<?php
/**
 * --------------------------------------------------------
 * Парсер раздач. Специально для TorrentPier
 *
 * @link https://torrentpier.com/
 * @license MIT License
 * @author Участники torrentpier.com, Ральф, belomaxorka
 * --------------------------------------------------------
 */

if (!defined('BB_ROOT')) die(basename(__FILE__));

function имя трекера($text)
{
    // ------------------- Get title -------------------
    preg_match("#<title>([\s\S]*?) ::.*?</title>#", $text, $matches);
    $title = $matches[1];

    // ------------------- Get download link -------------------
    preg_match('#<a href="dl.php\?id=(.*?)" class="genmed">#', $text, $matches);
    $torrent = $matches[1];

    // ------------------- Get content -------------------
    $pos = strpos($text, '<span id="pp_');
    $text = substr($text, $pos);
    $pos = strpos($text, '<div id="pc_');
    $text = substr($text, 0, $pos);
    $text = preg_replace('/<span id="pp_.*?">/', '', $text);

    $text = str_replace('<div class="c-wrap">', '', $text);
    $text = str_replace('<div class="q-wrap">', '', $text);
    $text = str_replace('<ul>', '[list]', $text);
    $text = str_replace('</ul>', '[/list]', $text);
    $text = str_replace('<li>', "\n[*]", $text);
    $text = str_replace('<span class="post-hr">-</span>', "[hr]", $text);
    $text = str_replace('<span class="post-br"><br /></span>', "[br]", $text);
    $text = preg_replace('/<span class="post-b">([^<]*?)<(?=\/)\/span>/', '[b]$1[/b]', $text);
    $text = preg_replace('/<span class="post-u">([^<]*?)<(?=\/)\/span>/', '[u]$1[/u]', $text);
    $text = preg_replace('/<span class="post-i">([^<]*?)<(?=\/)\/span>/', '[i]$1[/i]', $text);
    $text = preg_replace('/<span class="post-s">([^<]*?)<(?=\/)\/span>/', '[s]$1[/s]', $text);
    // ниже ваши регулярные выражения, замены и прочее...

    return array(
        'title' => $title,
        'torrent' => $torrent,
        'content' => strip_tags(html_entity_decode($text))
    );
}

Данный код прекрасно спарсил тестовую раздачу с демо сайта. Результат точь в точь.
Вот, сделаете как тут. У меня этот код работает
 
Последнее редактирование:
Сверху