Автоматическое повышение/понижение по рангу с оповещением в ЛС

Тема в разделе "Модификации для TorrentPier (архив)", создана пользователем _Xz_, 27 авг 2011.

  1. _Xz_

    _Xz_ Пользователь

    Сообщения:
    370
    Симпатии:
    236
    Версия TP:
    иная
    не забудьте выставить для констант соответствующие им значения user_rank'а
    ну и свой текст для отправки в ЛС
    PHP:
    define('S_MOD'3);
    define('VIP'4);
    define('S_UPLOADER'5);
    define('UPLOADER'6);
    define('S_USER'7);
    define('P_USER'8);
    define('LEECHER'9);

    $sql DB()->fetch_rowset("
    SELECT u.*, bt.*,
    COUNT(tor.topic_id) as releases
    FROM bb_users u
    LEFT JOIN bb_bt_torrents tor ON ( tor.poster_id = u.user_id )
    LEFT JOIN bb_bt_users bt ON ( bt.user_id = u.user_id )
    WHERE u.user_active = 1
    AND u.user_rank not IN("
    ADMIN .", "MOD .")
    AND u.user_level not IN("
    ADMIN .", "MOD .")
    GROUP BY u.user_id
    "
    );

    foreach (
    $sql as $key => $row)
    {
    $ratio = ($row['u_down_total']) ? ($row['u_up_total'] + $row['u_up_release'] + $row['u_up_bonus']) / $row['u_down_total'] : '0';

    if(
    $row['releases'])
    {
    if((
    $row['releases'] >= 20) && ($row['user_regdate'] < (TIMENOW 86400*30*3)))
    {
    // Super Uploader
    $SuperUploader[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], S_UPLOADER);
    }
    else
    {
    // Uploader
    $Uploader[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], UPLOADER);
    }
    // false
    }
    else
    {
    if(
    $row['user_regdate'] < (TIMENOW 86400*30*3))
    {
    if((
    $ratio >= 2) && ($row['u_up_total'] > 53687091200))
    {
    // Super User
    $SuperUser[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], S_USER);
    }
    elseif ((
    $ratio >= 1) && ($row['u_down_total'] > 10737418240))
    {
    // Power User
    $PowerUser[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], P_USER);
    }
    elseif ((
    $ratio 1) && ($row['u_up_total'] > 5368709120))
    {
    // Leecher
    $Leecher[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], LEECHER);
    }
    else
    {
    // User
    $User[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], USER);
    }
    // false
    }
    elseif(
    $row['user_regdate'] < (TIMENOW 2592000))
    {
    if ((
    $ratio >= 1) && ($row['u_down_total'] > 10737418240))
    {
    // Power User
    $PowerUser[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], P_USER);
    }
    elseif ((
    $ratio 1) && ($row['u_up_total'] > 5368709120))
    {
    // Leecher
    $Leecher[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], LEECHER);
    }
    else
    {
    // User
    $User[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], USER);
    }
    // false
    }
    else
    {
    if(
    $ratio 1)
    {
    if(
    $row['u_up_total'] > 5368709120)
    {
    // Leecher
    $Leecher[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], LEECHER);
    }
    else
    {
    // User
    $User[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], USER);
    }
    }
    else
    {
    if(
    $row['u_down_total'] > 10737418240)
    {
    // Power User
    $PowerUser[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], P_USER);
    }
    else
    {
    // User
    $User[] = $row['user_id'];
    pm_rank($row['user_id'], $row['user_rank'], USER);
    }
    }
    // false
    }
    }
    }

    DB()->query("UPDATE bb_users SET user_rank = "USER ." WHERE user_id IN("implode(', 'array_diff($User, array(''))) .")");
    DB()->query("UPDATE bb_users SET user_rank = "S_UPLOADER ." WHERE user_id IN("implode(', 'array_diff($SuperUploader, array(''))) .")");
    DB()->query("UPDATE bb_users SET user_rank = "UPLOADER ." WHERE user_id IN("implode(', 'array_diff($Uploader, array(''))) .")");
    DB()->query("UPDATE bb_users SET user_rank = "S_USER ." WHERE user_id IN("implode(', 'array_diff($SuperUser, array(''))) .")");
    DB()->query("UPDATE bb_users SET user_rank = "P_USER ." WHERE user_id IN("implode(', 'array_diff($PowerUser, array(''))) .")");
    DB()->query("UPDATE bb_users SET user_rank = "LEECHER ." WHERE user_id IN("implode(', 'array_diff($Leecher, array(''))) .")");

    function 
    pm_rank($user_id$user_rank$new_rank)
    {
    if(
    $user_rank $new_rank)
    {
    //Понижение
    //send_pm($user_id, $subject, $message, BOT_UID)
    }
    else if(
    $user_rank $new_rank)
    {
    //Повышение
    //send_pm($user_id, $subject, $message, BOT_UID)
    }
    }
     
  2. max

    max Пользователь

    Сообщения:
    15
    Симпатии:
    2
    это в common.php ?
     
  3. druid

    druid Пользователь

    Сообщения:
    206
    Симпатии:
    119
    да, если хочешь положить сервер на лопатки

    ---------------

    апдейты наверно лучше-таки в проверку на пустой массив засунуть, нет?
     
  4. christopher

    christopher Гость

    в каком файле вообще производится манипуляция? это единым кодом идёт? не могу вникнуть в туториал
     
  5. PheRum

    PheRum Разработчик

    Сообщения:
    1.074
    Симпатии:
    480
    Версия TP:
    , иная
    init_bb.php крон задача, functions.php
     

Поделиться этой страницей