- Совместимость
- проверялся на совместимость
- Изменения в БД
- требуются
- Дополнительные требования
- Требуется CURL
- Автор
- Lektor
- Общественное достояние
- нет
Описание: добавляет возможность пользователям парсить раздачи с некоторых популярных трекеров.
Поддерживаемые в настоящий момент трекеры:
- рутор без www в ссылке не парсит
Поддержка автора через Webmoney:
Поддерживаемые в настоящий момент трекеры:
- 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.com ## 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"><a 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(e, val){ var ptag = $(e).attr('name'); user.set(ptag, ( $(e).is(":checked") ? val : 0 ), 365, false); $("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:gettorrent, tor_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