Универсальный парсер 0.7.2

Добавляет возможность пользователям парсить раздачи с некоторых популярных трекеров.

  1. Lektor
    Совместимость:
    проверялся на совместимость
    Изменения в БД:
    требуются
    Дополнительные требования:
    Требуется CURL
    Автор:
    Lektor
    Общественное достояние:
    нет
    Описание: добавляет возможность пользователям парсить раздачи с некоторых популярных трекеров.
    Поддерживаемые в настоящий момент трекеры:
    • Rutracker
    • Rutor
    • NNM-Club
    Известные баги:
    - рутор без www в ссылке не парсит

    Поддержка автора через Webmoney:
    • R650139346710
    • U212798489152
    • Z409111469631
    Инструкция по установке:
    PHP:
    ##############################################################
    ## MOD Title: ParserMod
    ## MOD Author: Lektor
    ## MOD Description: This mod will add a feature for getting bccode from html pages of some sites, which helps to copy the releases from other places.
    ##                 
    ## MOD Version: 0.7.2
    ##
    ## Installation Level: easy
    ## Installation Time: 5 Minutes
    ## Files To Edit: 4
    ##                ajax.php,
    ##                posting.php,
    ##                library/language/ru/main.php,
    ##                styles/templates/default/posting.tpl
    ## Included Files: 8
    ##                library/ajax/parser.php
    ##          library/includes/functions_parser.php
    ##                styles/templates/default/images/p/nnm-club.ico
    ##                styles/templates/default/images/p/rutor.ico
    ##                styles/templates/default/images/p/rutracker.ico
    ##                admin/admin_pars_cfg.php
    ##                styles/templates/admin/admin_pars_cfg.tpl
    ##                data/cookies/.htaccess
    ##
    ## License: http://opensource.org/licenses/gpl-license.php GNU General Public License, version 3.0 (GPLv3)
    ##############################################################
    ## For security purposes, please check: http://www.torrentpier.me
    ## for the latest version of this MOD.
    ##############################################################
    ## Author Notes:
    ##
    ##############################################################
    ## MOD History:
    ##   2015-01-15 - Version 0.5.0
    ##          - First Release
    ##
    ##   2015-01-17 - Version 0.6.1
    ##          - fix minor bugs
    ##          - Add a possibility to copy the torrents from the rutracker
    ##          - add module's settings to admin panel
    ##
    ##   2015-02-21 - Version 0.7.2
    ##          - fix bugs with downloading torrents and etc.
    ##          - Add parser menu which gives you the possibility to choose download a torrent file or not, to preview a post or not
    ##          - add possibility of parsing www.rutor.org, nnm-club.me
    ##
    ##
    ##############################################################
    ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
    ##############################################################
    ##
    #
    #-----[ COPY ]------------------------------------------
    #
    copy library/ajax/parser.php to library/ajax/parser.php
    copy library
    /includes/functions_parser.php to library/includes/functions_parser.php
    copy styles
    /templates/default/images/p/nnm-club.ico to styles/templates/default/images/p/nnm-club.ico
    copy styles
    /templates/default/images/p/rutor.ico to styles/templates/default/images/p/rutor.ico
    copy styles
    /templates/default/images/p/rutracker.ico to styles/templates/default/images/p/rutracker.ico
    copy admin
    /admin_pars_cfg.php to admin/admin_pars_cfg.php
    copy styles
    /templates/admin/admin_pars_cfg.tpl to styles/templates/admin/admin_pars_cfg.tpl
    copy data
    /cookies/.htaccess to data/cookies/.htaccess

    #
    #-----[ SQL ]------------------------------------------
    #
    INSERT INTO `bb_config` (`config_name`, `config_value`) VALUES
    ('parsmod_disable''0'),
    (
    'parsmod_rutracker_login'''),
    (
    'parsmod_nnm_login'''),
    (
    'parsmod_nnm_password'''),
    (
    'parsmod_rutracker_password''');

    #
    #-----[ OPEN ]------------------------------------------
    #
    ajax.php

    #
    #-----[ FIND ]------------------------------------------
    #
            
    require(CLASS_DIR .'sitemap.php');
            break;

    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
        
    case 'pars':
            require(
    INC_DIR 'functions_parser.php');
            break;

    #
    #-----[ FIND ]------------------------------------------
    #
            
    'manage_group'      => array('user'),

    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
            
    'pars'            => array('user'),

    #
    #-----[ FIND ]------------------------------------------
    #
            
    require(AJAX_DIR 'edit_group_profile.php');
        }

    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
        
    function pars()
        {
            require(
    AJAX_DIR 'parser.php');
        }
         

    #
    #-----[ OPEN ]------------------------------------------
    #
    posting.php

    #
    #-----[ FIND ]------------------------------------------
    #
    if ($mode == 'newtopic' || $post_data['first_post'])
    {
        
    $template->assign_var('POSTING_SUBJECT');
    }

    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
    if (!$bb_cfg['parsmod_disable'] && ($mode == 'newtopic' || $post_data['first_post']))
    {
        
    $template->assign_var('PARSMOD_ON');
    }

    #
    #-----[ OPEN ]------------------------------------------
    #
    library/language/ru/main.php

    #
    #-----[ FIND ]---------------------------------
    #
    $lang['CAPTCHA_WRONG'] = 'Вы не смогли подтвердить, что вы не робот';

    #
    #-----[ AFTER, ADD ]---------------------------------
    #
    //PARS
    $lang['PARS_NEW_RELEASE'] = 'Скопировать готовое оформление релиза';
    $lang['PARS_ALLOWED_SOURCES'] = 'Поддерживаемые источники';
    $lang['PARS_RUTRACKER_SOURCES'] = 'Rutracker';
    $lang['PARS_NNM_SOURCES'] = 'NNM-Club';
    $lang['PARS_RUTOR_SOURCES'] = 'Rutor';

    $lang['PARS_IN_NEXT_VERSION'] = 'В следующей версии';
    $lang['PARS_SOURCE'] = 'Источник';
    $lang['PARS_PASTE_SOURCE_URL'] = 'Вставьте ссылку на тему с релизом...';
    $lang['PARS_NO_URL'] = 'Вставьте ссылку на релиз';
    $lang['PARS_NOT_ALLOWED_SOURCES'] = 'С указанным источником не умею работать';
    $lang['PARS_NO_WORK'] = 'Использование мода запрещено администратором.';
    $lang['PARS_CONFIG'] = 'Настройки ParsMod';
    $lang['PARS_CONFIG_DESC'] = 'Эта форма позволит вам изменить общие настройки мода, а также ввести логины/пароли к учетным записям трекеров, с которых будут парситься торрент файлы.';
    $lang['PARS_GENERAL_SETTINGS'] = 'Общие настройки мода';
    $lang['PARS_DISABLE_MOD'] = 'Отключить мод';
    $lang['PARS_DISABLE_MOD_DESC'] = 'Использование мода станет не доступным.';
    $lang['PARS_RUTRACKER'] = 'Настройки для Rutracker';
    $lang['PARS_NNM'] = 'Настройки для NNM-Club';
    $lang['PARS_LOGIN'] = 'Логин';
    $lang['PARS_PASS'] = 'Пароль';
    $lang['CLICK_RETURN_PARS_CFG'] = '%sВернуться к  настройкам ParsMod%s';

    $lang['PARS_OPT'] = 'Опции';
    $lang['PARS_OPT_TITLE'] = 'Опции парсера';
    $lang['PARS_OPT_TOR'] = '.torrent';
    $lang['PARS_OPT_DWNLD'] = 'Скачать .torrent из источника';
    $lang['PARS_OPT_NO_DWNLD'] = 'Не скачивать .torrent из источника';
    $lang['PARS_OPT_VIEW'] = 'Опции просмотра';
    $lang['PARS_OPT_NO_VIEW'] = 'Без просмотра';
    $lang['PARS_OPT_QVIEW'] = 'Быстрый просмотр';
    $lang['PARS_OPT_PREVIEW'] = 'Предварительный просмотр';
    $lang['PARS_OPT_POST'] = 'Сразу создавать топик';

    #
    #-----[ OPEN ]---------------------------------
    #
    styles/templates/default/posting.tpl


    #
    #-----[ FIND ]---------------------------------
    #
    <div class="spacer_12"></div>

    #
    #-----[ BEFORE, ADD ]---------------------------------
    #
    <div class="menu-sub" id="pars-opt">
        <
    table cellspacing="1" cellpadding="4">
        <
    tr><th>{L_PARS_OPT_TITLE}</th></tr>
        <
    tr><td>
            <
    fieldset id="p_tor">
            <
    legend>{L_PARS_OPT_TOR}</legend>
                <
    div class="pad_4">
                <
    label><input id="dwnld_tor" name="pars_tor" type="checkbox" <!-- IF DOWNLOAD_TORRENT_ON -->{CHECKED}<!-- ENDIF -->
                        
    onclick="return checkmeman(this, {DOWNLOAD_TORRENT});" />{L_PARS_OPT_DWNLD}
                </
    label><label>
                    <
    input id="not_dwnld_tor" name="pars_tor" type="checkbox" <!-- IF NOT_DOWNLOAD_TORRENT_ON -->{CHECKED}<!-- ENDIF -->
                        
    onclick="return checkmeman(this, {NOT_DOWNLOAD_TORRENT});" />{L_PARS_OPT_NO_DWNLD}
                </
    label></div>
            </
    fieldset>
            <
    fieldset id="p_view">
            <
    legend>{L_PARS_OPT_VIEW}</legend>
                <
    div class="pad_4">
                <
    label>
                    <
    input id="p_no_view" name="pars_view" type="checkbox" <!-- IF PARS_NO_VIEW_ON -->{CHECKED}<!-- ENDIF -->
                        
    onclick="return checkmeman(this, {PARS_NO_VIEW});" />{L_PARS_OPT_NO_VIEW}
                </
    label><label>
                    <
    input id="p_view_mess" name="pars_view" type="checkbox" <!-- IF PARS_VIEW_MESSAGE_ON -->{CHECKED}<!-- ENDIF -->
                        
    onclick="return checkmeman(this, {PARS_VIEW_MESSAGE});" />{L_PARS_OPT_QVIEW}
                </
    label><label>
                    <
    input id="p_preview_mess" name="pars_view" type="checkbox" <!-- IF PARS_PREVIEW_MESSAGE_ON -->{CHECKED}<!-- ENDIF -->
                            
    onclick="return checkmeman(this, {PARS_PREVIEW_MESSAGE});" />{L_PARS_OPT_PREVIEW}
                </
    label><label>
                    <
    input id="p_post_topic" name="pars_view" type="checkbox" <!-- IF PARS_POST_TOPIC_ON -->{CHECKED}<!-- ENDIF -->
                            
    onclick="return checkmeman(this, {PARS_POST_TOPIC});" />{L_PARS_OPT_POST}
                </
    label></div>
                </
    fieldset>
        </
    td></tr>
        </
    table>
    </
    div>

    #
    #-----[ FIND ]---------------------------------
    #
    <tr>
        <
    th colspan="2" class="thHead"><b>{POSTING_TYPE_TITLE}</b></th>

    #
    #-----[ BEFORE, ADD ]---------------------------------
    #
    <!-- IF PARSMOD_ON -->
    <
    tbody class="pad_4">
    <
    tr>
        <
    th colspan="2" class="thHead"><b>{L_PARS_NEW_RELEASE}</b><div class="floatR med bold"><class="menu-root" style="color:white;" href="#pars-opt">{L_PARS_OPT}</a></div></th>
    </
    tr>
    <
    tr>
        <
    td style="vertical-align:top;">
            <
    div title="{L_PARS_ALLOWED_SOURCES}" style="float: right;vertical-align:top;">
                <
    img src="./styles/templates/default/images/p/rutracker.ico" alt="Rutracker" title="{L_PARS_RUTRACKER_SOURCES}">
                <
    img src="./styles/templates/default/images/p/nnm-club.ico" alt="nnm-club" title="{L_PARS_NNM_SOURCES}">
                <
    img src="./styles/templates/default/images/p/rutor.ico" alt="Rutor" title="{L_PARS_RUTOR_SOURCES}"><br>
            </
    div>
            <
    b>{L_PARS_SOURCE}</b> <br>
        </
    td>
        <
    td>
            <
    input id="release_url" type="url" size=60 placeholder="{l_PARS_PASTE_SOURCE_URL}"> <input type="button" value="{L_SUBMIT}" name="Send" id="pars">

     
        <
    div id="hida"></div>
        </
    td>


    </
    tr>
    <
    script type="text/javascript">

    function 
    checkmeman(eval){
        var 
    ptag = $(e).attr('name');
        
    user.set(ptag, ( $(e).is(":checked") ? val ), 365false);
        $(
    "input[name="+ptag+"]:checked").attr('checked',  false);
        $(
    e).attr('checked'true);
    }

    $(
    '#pars').click(function(){
    var 
    fileid = [0,0];
    var 
    gettorrent = (($( "input[name='pars_tor']:checked" ).attr('id')) == 'dwnld_tor') ? 1:0;
    var 
    filename = $(".gen:contains('torrent')" ).text();
    var 
    mode = $("input[name|=mode]" ).val();

    if (
    filename && gettorrent  && mode == 'editpost'gettorrent confirm("Перезаписать торрент?")? 1:0;
    if (
    filename && gettorrent) {
        var 
    attach_url = $("a:contains("+filename+")").attr('href');
        if (
    fileid attach_url.match(/dl\.php\?id=(\d+)/)) {
                var 
    tmp_str = $("input[name|='update_attachment["+fileid[1]+"]']" ).next("input" ).attr("name");
                var 
    phys_name tmp_str.match(/del_attachment\[(.*)\]/); 
                $( 
    "input[value|='"+fileid[1]+"']" ).remove();
        }else{
                    var 
    phys_name attach_url.match(/.*\/(.*)/);
            var 
    fileid = [0,0];
        }

            $( 
    "input[value|='"+filename+"']" ).remove();
            $( 
    "input[value|='"+phys_name[1]+"']" ).remove();
            $(
    "a:contains("+filename+")").attr({href:" "});
        $(
    "a:contains("+filename+")").text('  ');
    }

    ajax.exec({action'pars'pars_url: $('#release_url').val(), gettorrent:gettorrenttor_id:fileid[1]});
        
    ajax.callback.pars = function(data) {
            $( 
    "#hida" ).html(data.hid);
            $( 
    "input[name='subject']" ).val(data.title);
            $(
    'textarea#message').val(data.bbcode)
            var 
    p_view = $("input[name='pars_view']:checked").attr('id');
            switch (
    p_view) {
              case 
    'p_view_mess'ajax.exec({ action'posts'type'view_message'message: $('textarea#message').val()});break
              case 
    'p_preview_mess': $('#post-preview-btn').click();break
              case 
    'p_post_topic': $('#post-submit-btn').click();break
            }
        };
    });

    </
    script>
    <!-- ENDIF -->

    #
    #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
    #
    # EoM
    whuru нравится это.

Пoследние рецензии

  1. Tahir
    Tahir
    5/5,
    Версия: 0.7.2
    Отлично все работает, как часики
  2. Анонимный пользователь
    Анонимный пользователь
    1/5,
    Версия: 0.7.2
    Не работает!!!
  3. RASO
    RASO
    5/5,
    Версия: 0.7.2
    СУПЕР
  4. Exile
    Exile
    5/5,
    Версия: 0.7.2
    Отличный парсер, отличный отклик на проблемы пользователей. Заслуженная высшая оценка.