diff --git a/admin/admin_bt_tracker_cfg.php b/admin/admin_bt_tracker_cfg.php index 5bd5a5f23..0e762d3fa 100644 --- a/admin/admin_bt_tracker_cfg.php +++ b/admin/admin_bt_tracker_cfg.php @@ -55,20 +55,20 @@ $default_cfg_num = array( /** * Set template vars */ -set_tpl_vars($default_cfg_str, $bb_cfg['tracker']); +set_tpl_vars($default_cfg_str, config('tracker')); set_tpl_vars_lang($default_cfg_str); -set_tpl_vars_bool($default_cfg_bool, $bb_cfg['tracker']); +set_tpl_vars_bool($default_cfg_bool, config('tracker')); set_tpl_vars_lang($default_cfg_bool); -set_tpl_vars($default_cfg_num, $bb_cfg['tracker']); +set_tpl_vars($default_cfg_num, config('tracker')); set_tpl_vars_lang($default_cfg_num); $template->assign_vars(array( 'IGNORE_REPORTED_IP' => $bb_cfg['ignore_reported_ip'], 'ANNOUNCE_INTERVAL' => $bb_cfg['announce_interval'], 'PASSKEY_KEY' => $bb_cfg['passkey_key'], - 'GOLD_SILVER_ENABLED' => $bb_cfg['tracker']['gold_silver_enabled'], + 'GOLD_SILVER_ENABLED' => config('tracker.gold_silver_enabled'), 'DISABLE_SUBMIT' => true, 'S_HIDDEN_FIELDS' => '', diff --git a/bt/announce.php b/bt/announce.php index 79a60548c..f9defa524 100644 --- a/bt/announce.php +++ b/bt/announce.php @@ -131,7 +131,7 @@ $peer_hash = md5( ); // Get cached peer info from previous announce (last peer info) -$lp_info = OLD_CACHE('tr_cache')->get(PEER_HASH_PREFIX . $peer_hash); +$lp_info = OLD_CACHE('tr_cache')->get('peer_' . $peer_hash); if (DBG_LOG) { dbg_log(' ', '$lp_info-get_from-CACHE-' . ($lp_info ? 'hit' : 'miss')); @@ -179,7 +179,7 @@ $stopped = ($event === 'stopped'); // Stopped event if ($stopped) { - OLD_CACHE('tr_cache')->rm(PEER_HASH_PREFIX . $peer_hash); + OLD_CACHE('tr_cache')->rm('peer_' . $peer_hash); if (DBG_LOG) { dbg_log(' ', 'stopped'); } @@ -233,15 +233,15 @@ if ($lp_info) { $tor_type = $row['tor_type']; // Ratio limits - if ((TR_RATING_LIMITS || $bb_cfg['tracker']['limit_concurrent_ips']) && !$stopped) { + if ((TR_RATING_LIMITS || config('tracker.limit_concurrent_ips')) && !$stopped) { $user_ratio = ($row['u_down_total'] && $row['u_down_total'] > MIN_DL_FOR_RATIO) ? ($row['u_up_total'] + $row['u_up_release'] + $row['u_up_bonus']) / $row['u_down_total'] : 1; $rating_msg = ''; if (!$seeder) { foreach ($bb_cfg['rating'] as $ratio => $limit) { if ($user_ratio < $ratio) { - $bb_cfg['tracker']['limit_active_tor'] = 1; - $bb_cfg['tracker']['limit_leech_count'] = $limit; + config(['tracker.limit_active_tor' => 1]); + config(['tracker.limit_leech_count' => $limit]); $rating_msg = " (ratio < $ratio)"; break; } @@ -249,29 +249,29 @@ if ($lp_info) { } // Limit active torrents - if (!isset($bb_cfg['unlimited_users'][$user_id]) && $bb_cfg['tracker']['limit_active_tor'] && (($bb_cfg['tracker']['limit_seed_count'] && $seeder) || ($bb_cfg['tracker']['limit_leech_count'] && !$seeder))) { + if (!isset($bb_cfg['unlimited_users'][$user_id]) && config('tracker.limit_active_tor') && ((config('tracker.limit_seed_count') && $seeder) || (config('tracker.limit_leech_count') && !$seeder))) { $sql = "SELECT COUNT(DISTINCT topic_id) AS active_torrents FROM " . BB_BT_TRACKER . " WHERE user_id = $user_id AND seeder = $seeder AND topic_id != $topic_id"; - if (!$seeder && $bb_cfg['tracker']['leech_expire_factor'] && $user_ratio < 0.5) { - $sql .= " AND update_time > " . (TIMENOW - 60 * $bb_cfg['tracker']['leech_expire_factor']); + if (!$seeder && config('tracker.leech_expire_factor') && $user_ratio < 0.5) { + $sql .= " AND update_time > " . (TIMENOW - 60 * config('tracker.leech_expire_factor')); } $sql .= " GROUP BY user_id"; if ($row = OLD_DB()->fetch_row($sql)) { - if ($seeder && $bb_cfg['tracker']['limit_seed_count'] && $row['active_torrents'] >= $bb_cfg['tracker']['limit_seed_count']) { - msg_die('Only ' . $bb_cfg['tracker']['limit_seed_count'] . ' torrent(s) allowed for seeding'); - } elseif (!$seeder && $bb_cfg['tracker']['limit_leech_count'] && $row['active_torrents'] >= $bb_cfg['tracker']['limit_leech_count']) { - msg_die('Only ' . $bb_cfg['tracker']['limit_leech_count'] . ' torrent(s) allowed for leeching' . $rating_msg); + if ($seeder && config('tracker.limit_seed_count') && $row['active_torrents'] >= config('tracker.limit_seed_count')) { + msg_die('Only ' . config('tracker.limit_seed_count') . ' torrent(s) allowed for seeding'); + } elseif (!$seeder && config('tracker.limit_leech_count') && $row['active_torrents'] >= config('tracker.limit_leech_count')) { + msg_die('Only ' . config('tracker.limit_leech_count') . ' torrent(s) allowed for leeching' . $rating_msg); } } } // Limit concurrent IPs - if ($bb_cfg['tracker']['limit_concurrent_ips'] && (($bb_cfg['tracker']['limit_seed_ips'] && $seeder) || ($bb_cfg['tracker']['limit_leech_ips'] && !$seeder))) { + if (config('tracker.limit_concurrent_ips') && ((config('tracker.limit_seed_ips') && $seeder) || (config('tracker.limit_leech_ips') && !$seeder))) { $sql = "SELECT COUNT(DISTINCT ip) AS ips FROM " . BB_BT_TRACKER . " WHERE topic_id = $topic_id @@ -279,16 +279,16 @@ if ($lp_info) { AND seeder = $seeder AND ip != '$ip_sql'"; - if (!$seeder && $bb_cfg['tracker']['leech_expire_factor']) { - $sql .= " AND update_time > " . (TIMENOW - 60 * $bb_cfg['tracker']['leech_expire_factor']); + if (!$seeder && config('tracker.leech_expire_factor')) { + $sql .= " AND update_time > " . (TIMENOW - 60 * config('tracker.leech_expire_factor')); } $sql .= " GROUP BY topic_id"; if ($row = OLD_DB()->fetch_row($sql)) { - if ($seeder && $bb_cfg['tracker']['limit_seed_ips'] && $row['ips'] >= $bb_cfg['tracker']['limit_seed_ips']) { - msg_die('You can seed only from ' . $bb_cfg['tracker']['limit_seed_ips'] . " IP's"); - } elseif (!$seeder && $bb_cfg['tracker']['limit_leech_ips'] && $row['ips'] >= $bb_cfg['tracker']['limit_leech_ips']) { - msg_die('You can leech only from ' . $bb_cfg['tracker']['limit_leech_ips'] . " IP's"); + if ($seeder && config('tracker.limit_seed_ips') && $row['ips'] >= config('tracker.limit_seed_ips')) { + msg_die('You can seed only from ' . config('tracker.limit_seed_ips') . " IP's"); + } elseif (!$seeder && config('tracker.limit_leech_ips') && $row['ips'] >= config('tracker.limit_leech_ips')) { + msg_die('You can leech only from ' . config('tracker.limit_leech_ips') . " IP's"); } } } @@ -312,7 +312,7 @@ $up_add = ($lp_info && $uploaded > $lp_info['uploaded']) ? $uploaded - $lp_info[ $down_add = ($lp_info && $downloaded > $lp_info['downloaded']) ? $downloaded - $lp_info['downloaded'] : 0; // Gold/Silver releases -if ($bb_cfg['tracker']['gold_silver_enabled'] && $down_add) { +if (config('tracker.gold_silver_enabled') && $down_add) { if ($tor_type == TOR_TYPE_GOLD) { $down_add = 0; } // Silver releases @@ -322,7 +322,7 @@ if ($bb_cfg['tracker']['gold_silver_enabled'] && $down_add) { } // Freeleech -if ($bb_cfg['tracker']['freeleech'] && $down_add) { +if (config('tracker.freeleech') && $down_add) { $down_add = 0; } @@ -388,14 +388,14 @@ $lp_info = array( 'tor_type' => (int)$tor_type, ); -$lp_info_cached = OLD_CACHE('tr_cache')->set(PEER_HASH_PREFIX . $peer_hash, $lp_info, PEER_HASH_EXPIRE); +$lp_info_cached = OLD_CACHE('tr_cache')->set('peer_' . $peer_hash, $lp_info, round($bb_cfg['announce_interval'] * (0.85 * config('tracker.expire_factor')))); if (DBG_LOG && !$lp_info_cached) { dbg_log(' ', '$lp_info-caching-FAIL'); } // Get cached output -$output = OLD_CACHE('tr_cache')->get(PEERS_LIST_PREFIX . $topic_id); +$output = OLD_CACHE('tr_cache')->get('peers_list_' . $topic_id); if (DBG_LOG) { dbg_log(' ', '$output-get_from-CACHE-' . ($output !== false ? 'hit' : 'miss')); @@ -403,8 +403,8 @@ if (DBG_LOG) { if (!$output) { // Retrieve peers - $numwant = (int)$bb_cfg['tracker']['numwant']; - $compact_mode = ($bb_cfg['tracker']['compact_mode'] || !empty($compact)); + $numwant = (int)config('tracker.numwant'); + $compact_mode = (config('tracker.compact_mode') || !empty($compact)); $rowset = OLD_DB()->fetch_rowset(" SELECT ip, port @@ -434,7 +434,7 @@ if (!$output) { $seeders = 0; $leechers = 0; - if ($bb_cfg['tracker']['scrape']) { + if (config('tracker.scrape')) { $row = OLD_DB()->fetch_row(" SELECT seeders, leechers FROM " . BB_BT_TRACKER_SNAP . " @@ -454,7 +454,7 @@ if (!$output) { 'incomplete' => (int)$leechers, ); - $peers_list_cached = OLD_CACHE('tr_cache')->set(PEERS_LIST_PREFIX . $topic_id, $output, PEERS_LIST_EXPIRE); + $peers_list_cached = OLD_CACHE('tr_cache')->set('peers_list_' . $topic_id, $output, round($bb_cfg['announce_interval'] * 0.7)); if (DBG_LOG && !$peers_list_cached) { dbg_log(' ', '$output-caching-FAIL'); diff --git a/bt/includes/init_tr.php b/bt/includes/init_tr.php index 8376a9e4b..76519bbc4 100644 --- a/bt/includes/init_tr.php +++ b/bt/includes/init_tr.php @@ -14,8 +14,8 @@ if (!defined('IN_TRACKER')) { global $bb_cfg; // Exit if tracker is disabled -if ($bb_cfg['tracker']['off']) { - msg_die($bb_cfg['tracker']['off_reason']); +if (config('tracker.off')) { + msg_die(config('tracker.off_reason')); } // diff --git a/bt/scrape.php b/bt/scrape.php index 116f6a807..1b3a99cbc 100644 --- a/bt/scrape.php +++ b/bt/scrape.php @@ -13,7 +13,7 @@ require dirname(__DIR__) . '/common.php'; global $bb_cfg; -if (!$bb_cfg['tracker']['scrape']) { +if (!config('tracker.scrape')) { msg_die('Please disable SCRAPE!'); } diff --git a/common.php b/common.php index bf9814bbd..7a9e0ae2f 100644 --- a/common.php +++ b/common.php @@ -61,6 +61,11 @@ try { } require_once __DIR__ . '/library/config.php'; +/** + * Container + */ +require_once __DIR__ . '/bootstrap.php'; + $server_protocol = $bb_cfg['cookie_secure'] ? 'https://' : 'http://'; $server_port = in_array((int)$bb_cfg['server_port'], array(80, 443), true) ? '' : ':' . $bb_cfg['server_port']; define('FORUM_PATH', $bb_cfg['script_path']); @@ -78,11 +83,6 @@ define('BB_BT_USERS', 'bb_bt_users'); define('BT_AUTH_KEY_LENGTH', 10); -define('PEER_HASH_PREFIX', 'peer_'); -define('PEERS_LIST_PREFIX', 'peers_list_'); -define('PEER_HASH_EXPIRE', round($bb_cfg['announce_interval'] * (0.85 * $bb_cfg['tracker']['expire_factor']))); // sec -define('PEERS_LIST_EXPIRE', round($bb_cfg['announce_interval'] * 0.7)); // sec - define('DL_STATUS_RELEASER', -1); define('DL_STATUS_DOWN', 0); define('DL_STATUS_COMPLETE', 1); @@ -169,11 +169,6 @@ switch ($bb_cfg['datastore_type']) { $datastore = new TorrentPier\Legacy\Datastore\File($bb_cfg['cache']['db_dir'] . 'datastore/', $bb_cfg['cache']['prefix']); } -/** - * Container - */ -require_once __DIR__ . '/bootstrap.php'; - function sql_dbg_enabled() { return (SQL_DEBUG && DBG_USER && !empty($_COOKIE['sql_log'])); diff --git a/library/config.php b/library/config.php index f5f8a3f5c..28a1944db 100644 --- a/library/config.php +++ b/library/config.php @@ -382,33 +382,6 @@ $bb_cfg['nofollow'] = [ 'allowed_url' => [$domain_name], // 'allowed.site', 'www.allowed.site' ]; -// Tracker settings -$bb_cfg['tracker'] = [ - 'autoclean' => true, - 'off' => false, - 'off_reason' => 'temporarily disabled', - 'numwant' => 50, - 'update_dlstat' => true, - 'expire_factor' => 2.5, - 'compact_mode' => true, - 'upd_user_up_down_stat' => true, - 'browser_redirect_url' => '', - 'scrape' => true, - 'limit_active_tor' => true, - 'limit_seed_count' => 0, - 'limit_leech_count' => 8, - 'leech_expire_factor' => 60, - 'limit_concurrent_ips' => false, - 'limit_seed_ips' => 0, - 'limit_leech_ips' => 0, - 'tor_topic_up' => true, - 'gold_silver_enabled' => true, - 'retracker' => true, - 'retracker_host' => 'http://retracker.local/announce', - 'freeleech' => false, - 'guest_tracker' => true, -]; - // Ratio settings // Don't change the order of ratios (from 0 to 1) // rating < 0.4 -- allow only 1 torrent for leeching diff --git a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php index bf6a42aac..bca4dcb1b 100644 --- a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php +++ b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php @@ -27,7 +27,7 @@ OLD_DB()->query("CREATE TABLE " . NEW_BB_BT_LAST_USERSTAT . " LIKE " . BB_BT_LAS OLD_DB()->expect_slow_query(600); // Update dlstat (part 1) -if ($bb_cfg['tracker']['update_dlstat']) { +if (config('tracker.update_dlstat')) { // ############################ Tables LOCKED ################################ OLD_DB()->lock(array( BB_BT_TRACKER, @@ -64,16 +64,16 @@ OLD_DB()->query(" "); // Clean peers table -if ($bb_cfg['tracker']['autoclean']) { +if (config('tracker.autoclean')) { $announce_interval = max((int)$bb_cfg['announce_interval'], 60); - $expire_factor = max((float)$bb_cfg['tracker']['expire_factor'], 1); + $expire_factor = max((float)config('tracker.expire_factor'), 1); $peer_expire_time = TIMENOW - floor($announce_interval * $expire_factor); OLD_DB()->query("DELETE FROM " . BB_BT_TRACKER . " WHERE update_time < $peer_expire_time"); } // Update dlstat (part 2) -if ($bb_cfg['tracker']['update_dlstat']) { +if (config('tracker.update_dlstat')) { // Set "only 1 seeder" bonus OLD_DB()->query(" UPDATE diff --git a/library/includes/functions.php b/library/includes/functions.php index 13b246183..f64517871 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -2059,7 +2059,7 @@ function is_gold($type) { global $lang, $bb_cfg; - if (!$bb_cfg['tracker']['gold_silver_enabled']) { + if (!config('tracker.gold_silver_enabled')) { $is_gold = ''; return $is_gold; } diff --git a/library/includes/functions_torrent.php b/library/includes/functions_torrent.php index 9fd21df9f..b1575a452 100644 --- a/library/includes/functions_torrent.php +++ b/library/includes/functions_torrent.php @@ -355,7 +355,7 @@ function tracker_register($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVED } } - if ($bb_cfg['tracker']['tor_topic_up']) { + if (config('tracker.tor_topic_up')) { OLD_DB()->query("UPDATE " . BB_TOPICS . " SET topic_last_post_time = GREATEST(topic_last_post_time, " . (TIMENOW - 3 * 86400) . ") WHERE topic_id = $topic_id"); } @@ -463,15 +463,18 @@ function send_torrent_with_passkey($filename) } // Add retracker - if (isset($bb_cfg['tracker']['retracker']) && $bb_cfg['tracker']['retracker']) { + if (config('tracker.retracker')) { if (bf($userdata['user_opt'], 'user_opt', 'user_retracker') || IS_GUEST) { if (!isset($tor['announce-list'])) { - $tor['announce-list'] = array( - array($announce), - array($bb_cfg['tracker']['retracker_host']) - ); + $tor['announce-list'] = [ + [$announce], + [config('tracker.retracker_host')] + ]; } else { - $tor['announce-list'] = array_merge($tor['announce-list'], array(array($bb_cfg['tracker']['retracker_host']))); + $tor['announce-list'] = array_merge( + $tor['announce-list'], + [[config('tracker.retracker_host')]] + ); } } } diff --git a/library/includes/page_header.php b/library/includes/page_header.php index 82b6729b6..40ecc867e 100644 --- a/library/includes/page_header.php +++ b/library/includes/page_header.php @@ -205,6 +205,8 @@ $template->assign_vars(array( 'READONLY' => HTML_READONLY, 'SELECTED' => HTML_SELECTED, + 'GS_ENABLED' => config('tracker.gold_silver_enabled'), + 'U_SEARCH_SELF_BY_LAST' => "search.php?uid={$userdata['user_id']}&o=5", 'U_WATCHED_TOPICS' => "profile.php?mode=watch", )); diff --git a/styles/templates/default/tracker.tpl b/styles/templates/default/tracker.tpl index 5994dd9ec..fbae16c75 100644 --- a/styles/templates/default/tracker.tpl +++ b/styles/templates/default/tracker.tpl @@ -238,7 +238,7 @@ $(function(){ /> {L_HIDE_CONTENTS}

-

{TOR_TYPE_CHBOX}

+

{TOR_TYPE_CHBOX}

diff --git a/styles/templates/default/viewtopic_attach.tpl b/styles/templates/default/viewtopic_attach.tpl index 0fc3b92cb..0efdc792e 100644 --- a/styles/templates/default/viewtopic_attach.tpl +++ b/styles/templates/default/viewtopic_attach.tpl @@ -146,11 +146,11 @@ {postrow.attach.tor_reged.DOWNLOAD_NAME} {postrow.attach.tor_reged.MAGNET} - +  {L_SILVER_STATUS}  - +  {L_GOLD_STATUS}  @@ -252,7 +252,7 @@ - +