Аплод за голос на TopTracker + пост благодарности

ChazychaZ

Пользователь
ChazychaZ, попробуй допилить по аналогии, я в топ теме не добавлялся. по сему не знаю.

дык соль в том, что уже пробовал и не раз) с закомментированными строками реферера начисляет аплоад, но не постит сообщение, вернее постит, но пустое
 

ChazychaZ

Пользователь
PHP:
<?php
 
$trackerid = XXXX;
 
// Генерируем ключ в админке и вставляем в кавычки
$key = "XXXXXXXXXXXXXXXXX";
// Вознаграждение в мегабайтах
$MB = 3072; // 100 МБ
 
// Возногражение в seedbonus
//$bonus = 5;
 
// Пишем ID топика, куда боту писать спасибы
$topic_id = 43094;
// *********************************************************************************************************
// ******************************************* Настройки стрипта *******************************************
// *********************************************************************************************************
 
 
$MB = $MB*1024*1024;
$ratio = (int) $_POST["ratio"];
$userid = (int) $_POST["userid"];
$ip = stripslashes(htmlspecialchars($_POST["ip"]));
 
Проверка на реферер
if(!preg_match("/^http:\/\/(www\.)?(tematop\.com)\/details.php\?id=".$trackerid."&userid=([^\/]+)/i", $_SERVER['HTTP_REFERER']))
{
    die("<b>Bad link :(</b>");
}
 
// Проверяем на сущестование пост данных + дополнительная проверка по уникальному ключу
if($userid && $ratio && $_POST["key"] == $key)
{
    define('IN_FORUM', true);
    define('BB_SCRIPT', 'toptema');
    define('BB_ROOT', './');
    require(BB_ROOT .'common.php');
    require(INC_DIR .'bbcode.php');
    require(INC_DIR .'functions_post.php');
 
    $passkey = DB()->fetch_row("SELECT auth_key FROM ". BB_BT_USERS ." WHERE user_id = ". $userid ." LIMIT 1");
 
    if ($bb_cfg['bt_gen_passkey_on_reg'] && $passkey == '')
    {
        include_once(INC_DIR .'functions_torrent.php');
        generate_passkey($userid);
    }
 
    // Плавное начисление. Если оценка 5 - начислится полное количество Мб. Если оценка 1 - начисления не будет
    $MB = ($MB * ($ratio - 1)) / 4;
 
    // Добавляем юзеру аплоад. Можно так же добавить проверку по IP, в данном примере проверка идет по ID юзера
    DB()->query("UPDATE bb_bt_users SET u_up_total = u_up_total + '".$MB."', user_votetime = CURDATE() WHERE user_id = '".$userid."' AND user_votetime < CURDATE()");
 
    if ($ratio > 3)
    {
        // Постим благодарность
        $post_MB = 3072*1024*1024;
        $message = 'Спасибо за оценку [b]' . (string) $ratio . '[/b] на сайте toptema.com пользователю [url=http://'. $bb_cfg['server_name'] .'/profile.php?mode=viewprofile&u='. $userid .'][b]' . get_username($userid) . '[/b][/url]. ';
        $message .= '[br][url=http://' . $bb_cfg['server_name'] . '/profile.php?mode=viewprofile&u='. $userid .'][b]'. get_username($userid) .'[/b][/url] получает upload в размере '. humn_size($post_MB);
        $message = prepare_message($message);
   
        $t_data = DB()->fetch_row("SELECT t.*, f.*
            FROM ". BB_TOPICS ." t, ". BB_FORUMS ." f
            WHERE t.topic_id = $topic_id
                AND f.forum_id = t.forum_id
            LIMIT 1");
 
        DB()->query("INSERT INTO " . BB_POSTS . " (topic_id, forum_id, poster_id, post_time, poster_ip) VALUES ($topic_id, ". $t_data['forum_id'] .", ". BOT_UID .", '". TIMENOW ."', '". USER_IP ."')");
        $post_id = DB()->sql_nextid();
        DB()->query("INSERT INTO " . BB_POSTS_TEXT . " (post_id, post_text) VALUES ($post_id, '". DB()->escape($message) ."')");
 
        update_post_stats('reply', $t_data, $t_data['forum_id'], $topic_id, $post_id, BOT_UID);
        add_search_words($post_id, stripslashes($message), stripslashes($t_data['topic_title']));
        update_post_html(array(
            'post_id'        => $post_id,
            'post_text'      => $message,
        ));
    }
}


были подозрения, что нужно в реферер подставлять не details.php а addbonus, потому что голосование идёт в 2 этапа, а не так как на топтрекере, но не помогло

UPD всё ребятки, разобрался) почитал тему на tp.kz, дело в кодировке было) комментируем проверку на реферер
PHP:
//Проверка на реферер
//if(!preg_match("/^http:\/\/(www\.)?(tematop\.com)\/details.php\?id=".$trackerid."&userid=([^\/]+)/i", $_SERVER['HTTP_REFERER']))
//{
    //die("<b>Bad link :(</b>");
//}
и сохраняем в UTF8 без BOM
 

M-24

Пользователь
подскажите пожалуйста, как сделлать чтобы бот писал не в топик а в чат? заранее спасибо.
 
Сверху