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

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

Пользователь Exile обновил ресурс Универсальный парсер новой записью:

Обновление 0.6.1

  • Исправлены мелки баги, недочеты
  • Добавлено копирование торрента в тему
  • Настройки вынесены в админку
[GALLERY=media, 18]ParsMod (парсер) 0.6.1 от Exile опубликован 17 янв 2015 в 04:52[/GALLERY]

Узнать больше об этом обновлении...
 
Пользователь Exile обновил ресурс Универсальный парсер новой записью:

Обновление 0.7.2

  • Исправлены ошибки при скачивании торрента
  • Добавлен рутор и нонейм
  • Добавлено меню настроек (скачивать/не скачивать торрент, варианты просмотра)
[GALLERY=media, 19]ParsMod (парсер) 0.7.2[/GALLERY]

Узнать больше об этом обновлении...
 
Модификация перенесена в ресурсы для более простого обновления, отслеживания изменений и т.п.
 
нужно найти это,а в файле нет такого значения.. CLASS_DIR значения нет,а есть INC_DIR
#
#-----[Найти!!!]------------------------------------------
#
require(CLASS_DIR .'sitemap.php');
break;

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

пробую заново,вчера голова заболела аж
 
Last edited by a moderator:
teckto модификация оптимизирована под 2.1.5, следовательно строка для нее же указана. По аналогии легко находится строка и в версии 2.1, которая у вас. sitemap.php поищите по файлу, найдете похожее место.
 
все сделал по мануалу,но потом вот такая штука вылезает...как бороться ?
оп.webp
 
все пересмотрел,ничего по моему пониманию не нашел...отзовется кто нибудь помоч? время терять не хочется на это все...либо мануалы такие ,либо руки кривые! Пишите! отзовемся!
 
время терять не хочется на это все...
если бы вы выложили кусок кода из файла аякс.пхп (или сам файл целиком, очевидно же, что в нем проблема) уже бы давно ответ получили ;). А то не совсем понятно как можно ожидать помощи на вашем месте, кроме совета проверьте все еще раз, сложно чем то еще помочь (будьте более инициативны :) ).
 
Last edited:
если бы вы выложили кусок кода из файла аякс.пхп (или сам файл целиком, очевидно же, что в нем проблема) уже бы давно ответ получили ;). А то не совсем понятно как можно ожидать помощи на вашем месте, кроме совета проверьте все еще раз, сложно чем то еще помочь (будьте более инициативны :) ).
<?php

define('BB_SCRIPT', 'ajax');
define('IN_AJAX', true);

$ajax = new ajax_common();

require('./common.php');

$ajax->init();

// Init userdata
$user->session_start();

// Exit if board is disabled via ON/OFF trigger or by admin
if ($ajax->action != 'manage_admin')
{
if ($bb_cfg['board_disable'])
{
$ajax->ajax_die($lang['BOARD_DISABLE']);
}
else if (file_exists(BB_DISABLED))
{
$ajax->ajax_die($lang['BOARD_DISABLE_CRON']);
}
}

// Load actions required modules
switch ($ajax->action)
{
case 'view_post':
case 'chat_message':
require(INC_DIR . 'bbcode.php');
break;

case 'update_peers':
require(BB_ROOT .'mult/config.php');
require(BB_ROOT .'mult/func.php');
require(BB_ROOT .'mult/class.remote.php');
require(BB_ROOT .'mult/class.fbenc.php');
require(BB_ROOT .'mult/class.bittorrent.php');
require(BB_ROOT .'mult/class.getpeers.php');
break;

case 'posts':
case 'post_mod_comment':
require(INC_DIR . 'bbcode.php');
require(INC_DIR . 'functions_post.php');
require(INC_DIR . 'functions_admin.php');
break;

case 'view_torrent':
case 'mod_action':
case 'change_tor_status':
case 'gen_passkey':
require(ATTACH_DIR . 'attachment_mod.php');
require(INC_DIR . 'functions_torrent.php');
break;

case 'change_torrent':
require(ATTACH_DIR . 'attachment_mod.php');
require(INC_DIR . 'functions_torrent.php');
break;

case 'user_register':
require(INC_DIR . 'functions_validate.php');
break;

case 'manage_user':
case 'manage_admin':
require(INC_DIR . 'functions_admin.php');
break;

case 'group_membership':
case 'manage_group':
require(INC_DIR . 'functions_group.php');
break;

case 'sitemap';
require(INC_DIR .'class.sitemap.php');
break;
}

// Position in $ajax->valid_actions['xxx']
define('AJAX_AUTH', 0); // 'guest', 'user', 'mod', 'admin', 'super_admin'

$ajax->exec();

//
// Ajax
//
class ajax_common
{
var $request = array();
var $response = array();

var $valid_actions = array(
// ACTION NAME AJAX_AUTH
'edit_user_profile' => array('admin'),
'change_user_rank' => array('admin'),
'change_user_opt' => array('admin'),
'manage_user' => array('admin'),
'manage_admin' => array('admin'),
'sitemap' => array('admin'),

'mod_action' => array('mod'),
'topic_tpl' => array('mod'),
'group_membership' => array('mod'),
'post_mod_comment' => array('mod'),

'avatar' => array('user'),
'gen_passkey' => array('user'),
'change_torrent' => array('user'),
'change_tor_status' => array('user'),
'manage_group' => array('user'),

'view_post' => array('guest'),
'view_torrent' => array('guest'),
'user_register' => array('guest'),
'posts' => array('guest'),
'index_data' => array('guest'),
'update_peers' => array('mod'),
'chat_message' => array('user'),
'index_ajax_del' => array('mod'),
);

var $action = null;

/**
* Constructor
*/
function ajax_common()
{
ob_start(array(&$this, 'ob_handler'));
header('Content-Type: text/plain');
}

/**
* Perform action
*/
function exec()
{
global $lang;

// Exit if we already have errors
if (!empty($this->response['error_code']))
{
$this->send();
}

// Check that requested action is valid
$action = $this->action;

if (!$action || !is_string($action))
{
$this->ajax_die('no action specified');
}
elseif (!$action_params =& $this->valid_actions[$action])
{
$this->ajax_die('invalid action: ' . $action);
}

// Auth check
switch ($action_params[AJAX_AUTH])
{
// GUEST
case 'guest':
break;

// USER
case 'user':
if (IS_GUEST)
{
$this->ajax_die($lang['NEED_TO_LOGIN_FIRST']);
}
break;

// MOD
case 'mod':
if (!IS_AM)
{
$this->ajax_die($lang['ONLY_FOR_MOD']);
}
$this->check_admin_session();
break;

// ADMIN
case 'admin':
if (!IS_ADMIN)
{
$this->ajax_die($lang['ONLY_FOR_ADMIN']);
}
$this->check_admin_session();
break;

// SUPER_ADMIN
case 'super_admin':
if (!IS_SUPER_ADMIN)
{
$this->ajax_die($lang['ONLY_FOR_SUPER_ADMIN']);
}
$this->check_admin_session();
break;

default:
trigger_error("invalid auth type for $action", E_USER_ERROR);
}

// Run action
$this->$action();

// Send output
$this->send();
}

/**
* Exit on error
*/
function ajax_die($error_msg, $error_code = E_AJAX_GENERAL_ERROR)
{
$this->response['error_code'] = $error_code;
$this->response['error_msg'] = $error_msg;

$this->send();
}

/**
* Initialization
*/
function init()
{
$this->request = $_POST;
$this->action =& $this->request['action'];
}

/**
* Send data
*/
function send()
{
$this->response['action'] = $this->action;

if (DBG_USER && SQL_DEBUG && !empty($_COOKIE['sql_log']))
{
$this->response['sql_log'] = get_sql_log();
}

// sending output will be handled by $this->ob_handler()
exit();
}

/**
* OB Handler
*/
function ob_handler($contents)
{
if (DBG_USER)
{
if ($contents)
{
$this->response['raw_output'] = $contents;
}
}

$response_js = bb_json_encode($this->response);

if (GZIP_OUTPUT_ALLOWED && !defined('NO_GZIP'))
{
if (UA_GZIP_SUPPORTED && strlen($response_js) > 2000)
{
header('Content-Encoding: gzip');
$response_js = gzencode($response_js, 1);
}
}

return $response_js;
}

/**
* Admin session
*/
function check_admin_session()
{
global $user;

if (!$user->data['session_admin'])
{
if (empty($this->request['user_password']))
{
$this->prompt_for_password();
}
else
{
$login_args = array(
'login_username' => $user->data['username'],
'login_password' => $_POST['user_password'],
);
if (!$user->login($login_args, true))
{
$this->ajax_die('Wrong password');
}
}
}
}

/**
* Prompt for password
*/
function prompt_for_password()
{
$this->response['prompt_password'] = 1;
$this->send();
}

/**
* Prompt for confirmation
*/
function prompt_for_confirm($confirm_msg)
{
if (empty($confirm_msg)) $this->ajax_die('false');

$this->response['prompt_confirm'] = 1;
$this->response['confirm_msg'] = $confirm_msg;
$this->send();
}

/**
* Verify mod rights
*/
function verify_mod_rights($forum_id)
{
global $userdata, $lang;

$is_auth = auth(AUTH_MOD, $forum_id, $userdata);

if (!$is_auth['auth_mod'])
{
$this->ajax_die($lang['ONLY_FOR_MOD']);
}
}

function edit_user_profile()
{
require(AJAX_DIR . 'edit_user_profile.php');
}

function change_user_rank()
{
require(AJAX_DIR . 'change_user_rank.php');
}

function change_user_opt()
{
require(AJAX_DIR . 'change_user_opt.php');
}

function gen_passkey()
{
require(AJAX_DIR . 'gen_passkey.php');
}

function group_membership()
{
require(AJAX_DIR . 'group_membership.php');
}

function manage_group()
{
require(AJAX_DIR . 'edit_group_profile.php');
}

function post_mod_comment()
{
require(AJAX_DIR . 'post_mod_comment.php');
}

function view_post()
{
require(AJAX_DIR . 'view_post.php');
}

function change_tor_status()
{
require(AJAX_DIR . 'change_tor_status.php');
}

function change_torrent()
{
require(AJAX_DIR . 'change_torrent.php');
}

function view_torrent()
{
require(AJAX_DIR . 'view_torrent.php');
}

function user_register()
{
require(AJAX_DIR . 'user_register.php');
}

function mod_action()
{
require(AJAX_DIR . 'mod_action.php');
}

function posts()
{
require(AJAX_DIR . 'posts.php');
}

function manage_user()
{
require(AJAX_DIR . 'manage_user.php');
}

function manage_admin()
{
require(AJAX_DIR . 'manage_admin.php');
}

function topic_tpl()
{
require(AJAX_DIR . 'topic_tpl.php');
}

function index_data()
{
require(AJAX_DIR . 'index_data.php');
}

function avatar()
{
require(AJAX_DIR . 'avatar.php');
}

function sitemap()
{
require(AJAX_DIR .'sitemap.php');
}

function chat_message ()
{
global $userdata, $bb_cfg, $lang;

$mode = (int) $this->request['mode'];
$message = (string) @$this->request['message'];

if ($mode == 1)
{
if (!$message)
{
$this->ajax_die($lang['SHOUTBOX_ERR']);
}

if (!IS_ADMIN)
{
$chk = DB()->fetch_row('SELECT MAX(shout_session_time) AS last_post_time FROM bb_shout WHERE shout_user_id = ' . $userdata['user_id']);
if ($chk['last_post_time'] > 0 && (time() - $chk['last_post_time']) < $bb_cfg['flood_interval'])
{
$this->ajax_die($lang['flood_error']);
}
}
if (!empty($message))
{
DB()->query('INSERT INTO bb_shout (shout_text, shout_session_time, shout_user_id, shout_ip, shout_username) VALUES ("' . DB()->escape($message) . '", ' . time() . ', ' . $userdata['user_id'] . ', "' . USER_IP . '", "' . DB()->escape($userdata['username']) . '")');
CACHE('bb_cache')->rm('shout_data');
}
}

$shout_data = '';
if (!$shout_rows = CACHE('bb_cache')->get('shout_data'))
{
$shout_rows = DB()->fetch_rowset("SELECT s.*, u.username, u.user_id, u.user_rank,
u.avatar_ext_id
FROM bb_shout s, " . BB_USERS . " u
WHERE s.shout_user_id=u.user_id AND u.user_id = u.user_id
ORDER BY s.shout_session_time DESC LIMIT 50");
CACHE('bb_cache')->set('shout_data', $shout_rows);
}

foreach ($shout_rows AS $i => $shout_row)
{
$row_class = !($i % 2) ? 'row1' : 'row2';
$shout_data .= '<div id="shout_' . $shout_row['shout_id'] . '" class="chat-comment ' . $row_class . '"><div style="min-height: 32px;">';
$shout_data .= ($shout_row['user_id'] == GUEST_UID) ? '' : '<a href="' . PROFILE_URL . $shout_row['user_id'] . '">';
$shout_data .= str_replace('<img', '<img align="left" height="32" width="32" style="padding-right: 3px;"', get_avatar($shout_row['user_id'], $shout_row['avatar_ext_id']));
$shout_data .= ($shout_row['user_id'] == GUEST_UID) ? '' : '</a>';

//$shout_data .= (IS_AM) ? '<span class="floatR"><span title="Удалить" class="clickable" onclick="ajax.index_ajax_del(' . $shout_row['shout_id'] . '); return false;">&nbsp;<img src="images/shout_delete.png" alt="" /></span></span>' : '';

$shout_data .= '<span class="bold" onclick="add_nick(\'' . $shout_row['username'] . ', \'); return false;">' . profile_url($shout_row) . '</span><div class="small">' . bb_date($shout_row['shout_session_time'], 'd-m-Y H:i', 'false') . '</div></div>';
$shout_data .= '<div class="spacer_2"></div><span style="font-size: 11px;">' . bbcode2html($shout_row['shout_text']) . '</span></div>';
}

$this->response['message'] = $shout_data;
}

function index_ajax_del()
{
$id = (int) $this->request['id'];

DB()->query("DELETE FROM bb_shout WHERE shout_id = $id");
CACHE('bb_cache')->rm('shout_data');

$this->response['id'] = $id;
}

function update_peers()
{
global $db, $cfg_ann, $lang;
$seed = $leech = 0;
$topic_id = (int) $this->request['topic_id'];
$row = DB()->fetch_row("SELECT info_hash FROM ".BB_BT_TORRENTS." WHERE topic_id = ".$topic_id." LIMIT 1");
if($row && $info_hash = $row['info_hash'])
{
$gp = new getpeers();
$data = $gp->get_peers(1, serialize($cfg_ann), bin2hex($info_hash), false);
foreach($data['peers'] as $announce)
{
$seed = (int) $seed + $announce[0];
$leech = (int) $leech + $announce[1];
}
//DB()->query("UPDATE ".BB_BT_TORRENTS." SET last_update = ".$data['last_update'].", ext_seeder = ".$seed.", ext_leecher = ".$leech." WHERE info_hash = '".DB()->escape($info_hash)."'");
DB()->query("UPDATE ".BB_BT_TORRENTS." SET last_update = ".$data['last_update'].", ext_seeder = ".$seed.", ext_leecher = ".$leech." WHERE topic_id = $topic_id");
$html = '<div class="mrg_4 pad_4">';
$html .= '<span class="seed">'. $lang['SEEDERS'] .':&nbsp; <b>'. $seed .'</b> &nbsp;[&nbsp; 0 KB/s &nbsp;]</span> &nbsp;';
$html .= '<span class="leech">'. $lang['LEECHERS'] .':&nbsp; <b>'. $leech .'</b> &nbsp;[&nbsp; 0 KB/s &nbsp;]</span> &nbsp;';
$html .= '</div>';
}
$this->response['html'] = $html;
$this->response['topic_id'] = $topic_id;
}
}
 
Back
Top