torrentpier/upload/callseed.php
pherum83@gmail.com c37b6bca24 r589
ALTER TABLE `bb_users` DROP `user_next_birthday_greeting`; Начиная с этой версии запустить TorrentPier II можно с PHP не ниже версии 5.3 !!! Исправлена ошибка, при которой можно было получить доступ к файлам в обход трекера Исправлена ошибка, при которой можно было запустить html код на некоторых страницах трекера Исправлена ошибка, при которой мог удалиться DL лист пользователей на сайте Исправлена ошибка, приводящая к падению сайта при генерировании кеша Исправлена чистка кеша, когда скрипт очищал не все объекты кеша Исправлена ошибка работы с фреймами в администраторском разделе Исправлено отображение списка форумов при скрытии категорий на главной странице Полностью переписана работа модуля "Позвать скачавших", а также добавлена опция отключения приема писем от нее Обновлена страница настроек Добавлен обновленный список текущих закачек в профиле Добавлено уведомление для пользователей используещих старые браузеры Добавлена заглушка, чтобы сторонние пользователя не могли получить доступ к списку картинок на фтп Добавлена опция позволяющая отключить компиляцию кеша шаблонов страниц Изменены имена администраторских и пользовательских настроек. Теперь это выглядит так: 'dis_*' => ЗАПРЕТЫ 'user_*' => НАСТРОЙКИ Также испралена куча незначительных ошибок и багов из списка присылаемых пользователями git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@589 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293
2014-06-19 19:23:41 +00:00

95 lines
2.6 KiB
PHP

<?php
define('IN_FORUM', true);
define('BB_SCRIPT', 'callseed');
define('BB_ROOT', './');
require(BB_ROOT . 'common.php');
// Init userdata
$user->session_start(array('req_login' => true));
$topic_id = (int) request_var('t', 0);
$t_data = topic_info($topic_id);
$forum_id = $t_data['forum_id'];
set_die_append_msg($forum_id, $topic_id);
if ($t_data['seeders'] > 2)
{
bb_die(sprintf($lang['CALLSEED_HAVE_SEED'], $t_data['seeders']));
}
elseif ($t_data['call_seed_time'] > (TIMENOW - 86400))
{
$time_left = delta_time($t_data['call_seed_time'] + 86400, TIMENOW, 'days');
bb_die(sprintf($lang['CALLSEED_MSG_SPAM'], $time_left));
}
$ban_user_id = array();
$sql = DB()->fetch_rowset("SELECT ban_userid FROM ". BB_BANLIST ." WHERE ban_userid != 0");
foreach ($sql as $row)
{
$ban_user_id[] = ','. $row['ban_userid'];
}
$ban_user_id = join('', $ban_user_id);
$user_list = DB()->fetch_rowset("
SELECT DISTINCT dl.user_id, u.user_opt, tr.user_id as active_dl
FROM ". BB_BT_DLSTATUS ." dl
LEFT JOIN ". BB_USERS ." u ON(u.user_id = dl.user_id)
LEFT JOIN ". BB_BT_TRACKER ." tr ON(tr.user_id = dl.user_id)
WHERE dl.topic_id = $topic_id
AND dl.user_status IN (". DL_STATUS_COMPLETE.", ". DL_STATUS_DOWN.")
AND dl.user_id NOT IN ({$userdata['user_id']}, ". EXCLUDED_USERS_CSV . $ban_user_id .")
AND u.user_active = 1
GROUP BY dl.user_id
");
$subject = sprintf($lang['CALLSEED_SUBJECT'], $t_data['topic_title']);
$message = sprintf($lang['CALLSEED_TEXT'], make_url(TOPIC_URL . $topic_id), $t_data['topic_title'], make_url(DOWNLOAD_URL . $t_data['attach_id']));
if ($user_list)
{
foreach ($user_list as $row)
{
if (!empty($row['active_dl'])) continue;
if (bf($row['user_opt'], 'user_opt', 'user_callseed'))
{
send_pm($row['user_id'], $subject, $message, BOT_UID);
}
}
}
else
{
send_pm($t_data['poster_id'], $subject, $message, BOT_UID);
}
DB()->query("UPDATE ". BB_BT_TORRENTS ." SET call_seed_time = ". TIMENOW ." WHERE topic_id = $topic_id LIMIT 1");
meta_refresh(TOPIC_URL . $topic_id);
bb_die($lang['CALLSEED_MSG_OK']);
function topic_info ($topic_id)
{
global $lang;
$sql = "
SELECT
tor.poster_id, tor.forum_id, tor.attach_id, tor.call_seed_time,
t.topic_title, sn.seeders
FROM ". BB_BT_TORRENTS ." tor
LEFT JOIN ". BB_TOPICS ." t USING(topic_id)
LEFT JOIN ". BB_BT_TRACKER_SNAP ." sn USING(topic_id)
WHERE tor.topic_id = $topic_id
";
if (!$torrent = DB()->fetch_row($sql))
{
message_die(GENERAL_ERROR, $lang['TOPIC_POST_NOT_EXIST']);
}
return $torrent;
}