mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-22 14:23:57 -07:00
Merge commit '4288681eb6
' into develop
Добавление ретрекера в скачиваемые торренты. Отключение как админом глобально, так и через профиль конкретнм юзером.
This commit is contained in:
commit
5a5c0fe95f
11 changed files with 75 additions and 47 deletions
|
@ -27,6 +27,7 @@ $default_cfg_bool = array(
|
|||
'update_dlstat' => 1,
|
||||
'limit_active_tor' => 0,
|
||||
'limit_concurrent_ips' => 0,
|
||||
'retracker' => 1,
|
||||
);
|
||||
|
||||
$default_cfg_num = array(
|
||||
|
|
|
@ -188,6 +188,8 @@ $tr_cfg = array(
|
|||
'limit_leech_ips' => 0,
|
||||
'tor_topic_up' => true,
|
||||
'gold_silver_enabled' => true,
|
||||
'retracker' => true,
|
||||
'retracker_host' => 'http://retracker.local/announce',
|
||||
);
|
||||
|
||||
$bb_cfg['show_dl_status_in_search'] = true;
|
||||
|
|
|
@ -32,19 +32,6 @@ function send_file_to_browser($attachment, $upload_dir)
|
|||
$gotit = true;
|
||||
}
|
||||
|
||||
//
|
||||
// Determine the Browser the User is using, because of some nasty incompatibilities.
|
||||
// Most of the methods used in this function are from phpMyAdmin. :)
|
||||
//
|
||||
if (!empty($_SERVER['HTTP_USER_AGENT']))
|
||||
{
|
||||
$HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
|
||||
}
|
||||
elseif (!isset($HTTP_USER_AGENT))
|
||||
{
|
||||
$HTTP_USER_AGENT = '';
|
||||
}
|
||||
|
||||
// Correct the mime type - we force application/octet-stream for all files, except images
|
||||
// Please do not change this, it is a security precaution
|
||||
if (!strstr($attachment['mimetype'], 'image'))
|
||||
|
@ -62,8 +49,8 @@ function send_file_to_browser($attachment, $upload_dir)
|
|||
// Now the tricky part... let's dance
|
||||
header('Pragma: public');
|
||||
$real_filename = clean_filename(basename($attachment['real_filename']));
|
||||
$mimetype = "{$attachment['mimetype']};";
|
||||
$charset = (@$lang['CONTENT_ENCODING']) ? "charset={$lang['CONTENT_ENCODING']};" : '';
|
||||
$mimetype = $attachment['mimetype'].';';
|
||||
$charset = (isset($lang['CONTENT_ENCODING'])) ? "charset={$lang['CONTENT_ENCODING']};" : '';
|
||||
|
||||
// Send out the Headers
|
||||
header("Content-Type: $mimetype $charset name=\"$real_filename\"");
|
||||
|
|
|
@ -275,6 +275,7 @@ $bf['user_opt'] = array(
|
|||
'dis_post' => 12, // Запрет на отправку сообщений
|
||||
'dis_post_edit' => 13, // Запрет на редактирование сообщений
|
||||
'user_dls' => 14, // Скрывать список текущих закачек в профиле
|
||||
'user_retracker' => 15, // Добавлять ретрекер к скачиваемым торрентам
|
||||
);
|
||||
|
||||
function bit2dec ($bit_num)
|
||||
|
|
|
@ -354,7 +354,7 @@ function tracker_register ($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVE
|
|||
|
||||
function send_torrent_with_passkey ($filename)
|
||||
{
|
||||
global $attachment, $auth_pages, $userdata, $bb_cfg, $lang;
|
||||
global $attachment, $auth_pages, $userdata, $bb_cfg, $tr_cfg, $lang;
|
||||
|
||||
if (!$bb_cfg['bt_add_auth_key'] || $attachment['extension'] !== TORRENT_EXT || !$size = @filesize($filename))
|
||||
{
|
||||
|
@ -446,7 +446,7 @@ function send_torrent_with_passkey ($filename)
|
|||
$announce = strval($ann_url . "?$passkey_key=$passkey_val");
|
||||
|
||||
// Replace original announce url with tracker default
|
||||
if ($bb_cfg['bt_replace_ann_url'] || !@$tor['announce'])
|
||||
if ($bb_cfg['bt_replace_ann_url'] || !isset($tor['announce']))
|
||||
{
|
||||
$tor['announce'] = $announce;
|
||||
}
|
||||
|
@ -456,11 +456,30 @@ function send_torrent_with_passkey ($filename)
|
|||
{
|
||||
unset($tor['announce-list']);
|
||||
}
|
||||
elseif (@$tor['announce-list'])
|
||||
elseif (isset($tor['announce-list']))
|
||||
{
|
||||
$tor['announce-list'] = array_merge($tor['announce-list'], array(array($announce)));
|
||||
}
|
||||
|
||||
// Add retracker
|
||||
if (isset($tr_cfg['retracker']) && $tr_cfg['retracker'])
|
||||
{
|
||||
if (bf($userdata['user_opt'], 'user_opt', 'user_retracker'))
|
||||
{
|
||||
if (!isset($tor['announce-list']))
|
||||
{
|
||||
$tor['announce-list'] = array(
|
||||
array($announce),
|
||||
array($tr_cfg['retracker_host'])
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$tor['announce-list'] = array_merge($tor['announce-list'], array(array($tr_cfg['retracker_host'])));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add publisher & topic url
|
||||
$publisher_name = $bb_cfg['server_name'];
|
||||
$publisher_url = make_url(TOPIC_URL . $topic_id);
|
||||
|
|
|
@ -370,7 +370,7 @@ foreach ($profile_fields as $field => $can_edit)
|
|||
$reg_mode = ($mode == 'register');
|
||||
|
||||
$update_user_opt = array(
|
||||
# 'user_opt_name' => ($reg_mode) ? #reg_setting : #in_login_change
|
||||
# 'user_opt_name' => ($reg_mode) ? #reg_value : #in_login_change
|
||||
'user_viewemail' => ($reg_mode) ? false : true,
|
||||
'user_viewonline' => ($reg_mode) ? false : true,
|
||||
'user_notify' => ($reg_mode) ? true : true,
|
||||
|
@ -378,6 +378,7 @@ foreach ($profile_fields as $field => $can_edit)
|
|||
'user_porn_forums' => ($reg_mode) ? false : true,
|
||||
'user_dls' => ($reg_mode) ? false : true,
|
||||
'user_callseed' => ($reg_mode) ? true : true,
|
||||
'user_retracker' => ($reg_mode) ? true : true,
|
||||
);
|
||||
|
||||
foreach ($update_user_opt as $opt => $can_change_opt)
|
||||
|
|
|
@ -1515,7 +1515,8 @@ $lang['ICQ_ERROR'] = 'The field of "ICQ" may contain only icq number';
|
|||
$lang['INVALID_DATE'] = 'Error date ';
|
||||
$lang['PROFILE_USER'] = 'Viewing profile';
|
||||
$lang['GOOD_UPDATE'] = 'was successfully changed';
|
||||
$lang['DENY_VISITORS'] = 'Hide the current list of downloads on your profile';
|
||||
$lang['UCP_DOWNLOADS'] = 'Downloads';
|
||||
$lang['HIDE_DOWNLOADS'] = 'Hide the current list of downloads on your profile';
|
||||
$lang['BAN_USER'] = 'To prevent a user';
|
||||
$lang['USER_NOT_ALLOWED'] = 'Users are not permitted';
|
||||
$lang['HIDE_AVATARS'] = 'Show avatars';
|
||||
|
@ -2524,6 +2525,7 @@ $lang['USE_AUTH_KEY_EXPL'] = 'enable check for passkey';
|
|||
$lang['AUTH_KEY_NAME'] = 'Passkey name';
|
||||
$lang['AUTH_KEY_NAME_EXPL'] = 'passkey key name in GET request';
|
||||
$lang['ALLOW_GUEST_DL'] = 'Allow guest access to tracker';
|
||||
$lang['ADD_RETRACKER'] = 'Add retracker in torrent files';
|
||||
|
||||
//
|
||||
// Forum config
|
||||
|
@ -2764,7 +2766,7 @@ $lang['BOT_MESS_SPLITS'] = 'Topic has been split. New topic - [b]%s[/b][br][br]%
|
|||
$lang['BOT_TOPIC_SPLITS'] = 'Topic has been split from [b]%s[/b][br][br]%s';
|
||||
|
||||
$lang['CALLSEED'] = 'Downloaded the call';
|
||||
$lang['CALLSEED_EXPLAIN'] = 'Take notice with a request to return to the distribution?';
|
||||
$lang['CALLSEED_EXPLAIN'] = 'Take notice with a request to return to the distribution';
|
||||
$lang['CALLSEED_SUBJECT'] = 'Download help %s';
|
||||
$lang['CALLSEED_TEXT'] = 'Hello![br]Your help is needed in the release [url=%s]%s[/url][br]If you decide to help, but already deleted the torrent file, you can download it [url=%s]this[/url][br][br]I hope for your help!';
|
||||
$lang['CALLSEED_MSG_OK'] = 'Message has been sent to all those who downloaded this release';
|
||||
|
|
|
@ -1515,7 +1515,8 @@ $lang['ICQ_ERROR'] = 'Поле "ICQ" может содержать только
|
|||
$lang['INVALID_DATE'] = 'Ошибка даты ';
|
||||
$lang['PROFILE_USER'] = 'Профиль пользователя';
|
||||
$lang['GOOD_UPDATE'] = 'был успешно изменен';
|
||||
$lang['DENY_VISITORS'] = 'Скрывать список текущих закачек в профиле';
|
||||
$lang['UCP_DOWNLOADS'] = 'Закачки';
|
||||
$lang['HIDE_DOWNLOADS'] = 'Скрывать список текущих закачек в профиле';
|
||||
$lang['BAN_USER'] = 'Запретить пользователю';
|
||||
$lang['USER_NOT_ALLOWED'] = 'Пользователю запрещено';
|
||||
$lang['HIDE_AVATARS'] = 'Показывать аватар';
|
||||
|
@ -2524,6 +2525,7 @@ $lang['USE_AUTH_KEY_EXPL'] = 'включить авторизацию по passk
|
|||
$lang['AUTH_KEY_NAME'] = 'Имя ключа passkey';
|
||||
$lang['AUTH_KEY_NAME_EXPL'] = 'имя ключа, который будет добавляться в GET запросе к announce url для идентификации юзера';
|
||||
$lang['ALLOW_GUEST_DL'] = 'Разрешить "гостям" (неавторизованным юзерам) доступ к трекеру';
|
||||
$lang['ADD_RETRACKER'] = 'Добавлять ретрекер в торрент-файлы';
|
||||
|
||||
//
|
||||
// Forum config
|
||||
|
@ -2764,7 +2766,7 @@ $lang['BOT_MESS_SPLITS'] = 'Сообщения из этой темы были
|
|||
$lang['BOT_TOPIC_SPLITS'] = 'Тема была выделена из [b]%s[/b][br][br]%s';
|
||||
|
||||
$lang['CALLSEED'] = 'Позвать скачавших';
|
||||
$lang['CALLSEED_EXPLAIN'] = 'Принимать уведомления с просьбой вернуться на раздачу?';
|
||||
$lang['CALLSEED_EXPLAIN'] = 'Принимать уведомления с просьбой вернуться на раздачу';
|
||||
$lang['CALLSEED_SUBJECT'] = 'Помогите скачать %s';
|
||||
$lang['CALLSEED_TEXT'] = 'Здравствуйте![br]Ваша помощь необходима в раздаче [url=%s]%s[/url][br]Если Вы решили помочь, но уже удалили торрент-файл, Вы можете скачать его [url=%s]здесь[/url][br][br]Надеюсь на Вашу помощь!';
|
||||
$lang['CALLSEED_MSG_OK'] = 'Сообщения успешно отправлены всем скачавшим данный релиз';
|
||||
|
|
|
@ -1515,7 +1515,8 @@ $lang['ICQ_ERROR'] = 'Поле "ICQ" може містити тільки ном
|
|||
$lang['INVALID_DATE'] = 'Помилка дати ';
|
||||
$lang['PROFILE_USER'] = 'Профіль користувача';
|
||||
$lang['GOOD_UPDATE'] = 'був успішно змінен';
|
||||
$lang['DENY_VISITORS'] = 'Приховувати список поточних завантажень в профілі';
|
||||
$lang['UCP_DOWNLOADS'] = 'Завантажити';
|
||||
$lang['HIDE_DOWNLOADS'] = 'Приховувати список поточних завантажень в профілі';
|
||||
$lang['BAN_USER'] = 'Заборонити користувачу';
|
||||
$lang['USER_NOT_ALLOWED'] = 'Користувачеві заборонено';
|
||||
$lang['HIDE_AVATARS'] = 'Показувати аватар';
|
||||
|
@ -2441,7 +2442,7 @@ $lang['ATTACHMENTS_PER_DAY'] = 'Прикріплень за день';
|
|||
|
||||
// Control Panel -> Attachments
|
||||
$lang['STATISTICS_FOR_USER'] = 'Статистика додатків для %s'; // replace %s with username
|
||||
$lang['DOWNLOAD'] = 'Завантажити';
|
||||
$lang['DOWNLOADS'] = 'Завантажити';
|
||||
$lang['POST_TIME'] = 'Дата повідомлення';
|
||||
$lang['POSTED_IN_TOPIC'] = 'Розміщене в темі';
|
||||
$lang['SUBMIT_CHANGES'] = 'Зберегти зміни';
|
||||
|
@ -2524,6 +2525,7 @@ $lang['USE_AUTH_KEY_EXPL'] = 'включити авторизацію по passk
|
|||
$lang['AUTH_KEY_NAME'] = "Ім'я ключа passkey";
|
||||
$lang['AUTH_KEY_NAME_EXPL'] = "ім'я ключа, який буде додаватися до GET запиті до announce url для ідентифікації користувача";
|
||||
$lang['ALLOW_GUEST_DL'] = "Дозволити 'гостям' (неавторизованим юзерам) доступ до трекера";
|
||||
$lang['ADD_RETRACKER'] = 'Додавати ретрекер в торрент-файли';
|
||||
|
||||
//
|
||||
// Forum config
|
||||
|
@ -2764,7 +2766,7 @@ $lang['BOT_MESS_SPLITS'] = 'Повідомлення з цієї теми бул
|
|||
$lang['BOT_TOPIC_SPLITS'] = 'Тема була виділена з [b]%s[/b][br][br]%s';
|
||||
|
||||
$lang['CALLSEED'] = 'Покликати, кто завантажил';
|
||||
$lang['CALLSEED_EXPLAIN'] = 'Приймати повідомлення з проханням повернутися на роздачу?';
|
||||
$lang['CALLSEED_EXPLAIN'] = 'Приймати повідомлення з проханням повернутися на роздачу';
|
||||
$lang['CALLSEED_SUBJECT'] = 'Допоможіть завантажити %s';
|
||||
$lang['CALLSEED_TEXT'] = 'Привіт![br]Ваша допомога необхідна в роздачі [url=%s]%s[/url][br]Якщо ви вирішили допомогти, але вже видалили торрент-файл, можете завантажити його [url=%s]здесь[/url][br][br]Сподіваюся на вашу допомогу!';
|
||||
$lang['CALLSEED_MSG_OK'] = 'Повідомлення успішно відправлено всім скачавшим даний реліз';
|
||||
|
|
|
@ -51,7 +51,6 @@
|
|||
<td><h4>{L_ALLOW_GUEST_DL}</h4><!-- IF L_ALLOW_GUEST_DL_EXPL --><h6>{L_ALLOW_GUEST_DL_EXPL}</h6><!-- ENDIF --></td>
|
||||
<td> <!-- IF $bb_cfg['bt_tor_browse_only_reg'] -->{L_NO}<!-- ELSE -->{L_YES}<!-- ENDIF --></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th colspan="2">{L_LIMIT_ACTIVE_TOR_HEAD}</th>
|
||||
</tr>
|
||||
|
@ -103,10 +102,14 @@
|
|||
<td><h4>{L_UPDATE_DLSTAT}</h4><h6>Used in cron <b>Tracker cleanup and dlstat</b></h6></td>
|
||||
<td><label for="update_dlstat1"><input type="radio" name="update_dlstat" id="update_dlstat1" value="1" {UPDATE_DLSTAT_YES} /> {L_UPDATE_DLSTAT_YES} </label><label for="update_dlstat2"> <input type="radio" name="update_dlstat" id="update_dlstat2" value="0" {UPDATE_DLSTAT_NO} /> {L_UPDATE_DLSTAT_NO} </label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h4>{L_ADD_RETRACKER}</h4></td>
|
||||
<td><label for="retracker_true"><input type="radio" name="retracker" id="retracker_true" value="1" {RETRACKER_YES} /> {L_YES} </label><label for="retracker_false"> <input type="radio" name="retracker" id="retracker_false" value="0" {RETRACKER_NO} /> {L_NO} </label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h4>{L_GOLD} / {L_SILVER}</h4></td>
|
||||
<td>
|
||||
<label><input type="radio" name="gold_silver_enabled" value="1" <!-- IF GOLD_SILVER_ENABLED -->checked="checked"<!-- ENDIF --> />{L_ENABLED}</label>
|
||||
<label><input type="radio" name="gold_silver_enabled" value="1" <!-- IF GOLD_SILVER_ENABLED -->checked="checked"<!-- ENDIF --> />{L_ENABLED}</label>
|
||||
<label><input type="radio" name="gold_silver_enabled" value="0" <!-- IF not GOLD_SILVER_ENABLED -->checked="checked"<!-- ENDIF --> />{L_DISABLED}</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -129,4 +132,3 @@
|
|||
</form>
|
||||
|
||||
<br clear="all" />
|
||||
|
||||
|
|
|
@ -211,13 +211,6 @@ ajax.callback.posts = function(data){
|
|||
<label><input type="radio" name="user_viewonline" value="0" <!-- IF not USER_VIEWONLINE -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="prof-title">{L_DENY_VISITORS}:</td>
|
||||
<td>
|
||||
<label><input type="radio" name="user_dls" value="1" <!-- IF USER_DLS -->checked="checked"<!-- ENDIF --> />{L_YES}</label>
|
||||
<label><input type="radio" name="user_dls" value="0" <!-- IF not USER_DLS -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="prof-title">{L_ALWAYS_NOTIFY}:<br /><h6>{L_ALWAYS_NOTIFY_EXPLAIN}</h6></td>
|
||||
<td>
|
||||
|
@ -225,7 +218,6 @@ ajax.callback.posts = function(data){
|
|||
<label><input type="radio" name="user_notify" value="0" <!-- IF not USER_NOTIFY -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- IF $bb_cfg['pm_notify_enabled'] -->
|
||||
<tr>
|
||||
<td class="prof-title">{L_NOTIFY_ON_PRIVMSG}:</td>
|
||||
|
@ -235,12 +227,14 @@ ajax.callback.posts = function(data){
|
|||
</td>
|
||||
</tr>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF SHOW_DATEFORMAT -->
|
||||
<tr>
|
||||
<td class="prof-title">{L_CALLSEED}:<br /><h6>{L_CALLSEED_EXPLAIN}</h6></td>
|
||||
<td>
|
||||
<label><input type="radio" name="user_callseed" value="1" <!-- IF USER_CALLSEED -->checked="checked"<!-- ENDIF --> />{L_YES}</label>
|
||||
<label><input type="radio" name="user_callseed" value="0" <!-- IF not USER_CALLSEED -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
|
||||
</td>
|
||||
<td class="prof-title">{L_DATE_FORMAT}:<br /><h6>{L_DATE_FORMAT_EXPLAIN}</h6></td>
|
||||
<td><input type="text" name="dateformat" value="{DATE_FORMAT}" maxlength="14" /></td>
|
||||
</tr>
|
||||
<!-- ENDIF -->
|
||||
<tr>
|
||||
<th colspan="2">{L_UCP_DOWNLOADS}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="prof-title">{L_HIDE_PORN_FORUMS}:</td>
|
||||
|
@ -249,12 +243,27 @@ ajax.callback.posts = function(data){
|
|||
<label><input type="radio" name="user_porn_forums" value="0" <!-- IF not USER_PORN_FORUMS -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- IF SHOW_DATEFORMAT -->
|
||||
<tr>
|
||||
<td class="prof-title">{L_DATE_FORMAT}:<br /><h6>{L_DATE_FORMAT_EXPLAIN}</h6></td>
|
||||
<td><input type="text" name="dateformat" value="{DATE_FORMAT}" maxlength="14" /></td>
|
||||
<td class="prof-title">{L_ADD_RETRACKER}:</td>
|
||||
<td>
|
||||
<label><input type="radio" name="user_retracker" value="1" <!-- IF USER_RETRACKER -->checked="checked"<!-- ENDIF --> />{L_YES}</label>
|
||||
<label><input type="radio" name="user_retracker" value="0" <!-- IF not USER_RETRACKER -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="prof-title">{L_HIDE_DOWNLOADS}:</td>
|
||||
<td>
|
||||
<label><input type="radio" name="user_dls" value="1" <!-- IF USER_DLS -->checked="checked"<!-- ENDIF --> />{L_YES}</label>
|
||||
<label><input type="radio" name="user_dls" value="0" <!-- IF not USER_DLS -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="prof-title">{L_CALLSEED_EXPLAIN}:</td>
|
||||
<td>
|
||||
<label><input type="radio" name="user_callseed" value="1" <!-- IF USER_CALLSEED -->checked="checked"<!-- ENDIF --> />{L_YES}</label>
|
||||
<label><input type="radio" name="user_callseed" value="0" <!-- IF not USER_CALLSEED -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- ENDIF -->
|
||||
<tr>
|
||||
<th colspan="2">{L_AVATAR_PANEL}</th>
|
||||
</tr>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue