From 2d29c29a8a785734c9f121095d7a82705cbc6c5c Mon Sep 17 00:00:00 2001
From: Roman Kelesidis
Date: Sat, 10 Aug 2024 12:17:55 +0700
Subject: [PATCH 1/9] Update CHANGELOG.md
---
CHANGELOG.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8cf90cad3..16e309940 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,7 +22,7 @@
- Release 2.4.4 🦩 ([belomaxorka](https://github.com/belomaxorka))
- Supports PHP 8.2 / PHP 8.3 ([belomaxorka](https://github.com/belomaxorka))
-- CWE-502 Fixed: Deserialization of untrusted data ([belomaxorka](https://github.com/belomaxorka))
+- CVE-2024-40624: Deserialization of untrusted data ([belomaxorka](https://github.com/belomaxorka))
- Refactored cache drivers 🗃 [\#1553](https://github.com/torrentpier/torrentpier/pull/1553), [\#1557](https://github.com/torrentpier/torrentpier/pull/1557) ([belomaxorka](https://github.com/belomaxorka))
- Create tech stack docs (`techstack.yml` and `techstack.md`) [\#1521](https://github.com/torrentpier/torrentpier/pull/1521), [\#1522](https://github.com/torrentpier/torrentpier/pull/1522) ([belomaxorka](https://github.com/belomaxorka))
- Added MonsterID avatars support 🎇 [\#1546](https://github.com/torrentpier/torrentpier/pull/1546) ([belomaxorka](https://github.com/belomaxorka))
From e82d2b408998cbf3c6c0fd6d5fde764d96e78a58 Mon Sep 17 00:00:00 2001
From: Roman Kelesidis
Date: Sat, 10 Aug 2024 20:12:13 +0700
Subject: [PATCH 2/9] CLI installer improvements (#1585)
* Added Docker support
* Updated
* Updated
* Updated
* Update Dockerfile
* Create nginx.conf
* Updated
* Update .dockerignore
* Updated
* Update docker-compose.yml
* Update docker-compose.yml
* Update docker-compose.yml
* Update docker-compose.yml
* Update docker-compose.yml
* Update common.php
* Updated
* Update common.php
* Update .dockerignore
* Update .dockerignore
* Update .dockerignore
* Update nginx.conf
* Update install.php
* Update install.php
* Update install.php
* Update install.php
* Update install.php
* Update install.php
* Updated
* Updated
* Update CHANGELOG.md
---
.gitignore | 5 ++-
CHANGELOG.md | 2 +-
common.php | 4 +--
install.php | 88 ++++++++++++++++++++++++++++++++++++----------------
4 files changed, 66 insertions(+), 33 deletions(-)
diff --git a/.gitignore b/.gitignore
index 4403989a6..c7d55de12 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,11 +2,10 @@
.idea
### TorrentPier ###
+*.log
*.integrity
.env
.php_cs.cache
-composer.phar
-configs/local.php
data/avatars
data/uploads
internal_data/atom
@@ -19,7 +18,7 @@ library/config.local.php
vendor
### Archives ###
-*.log
+*.phar
*.rar
*.tar
*.gz
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 16e309940..e80da16f7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,7 +6,7 @@
**Merged pull requests:**
- Release 2.4.5 🦕 ([belomaxorka](https://github.com/belomaxorka))
-- [CLI] TorrentPier installer ☕️ [\#1576](https://github.com/torrentpier/torrentpier/pull/1576), [\#1582](https://github.com/torrentpier/torrentpier/pull/1582) ([belomaxorka](https://github.com/belomaxorka))
+- [CLI] TorrentPier installer ☕️ [\#1576](https://github.com/torrentpier/torrentpier/pull/1576), [\#1582](https://github.com/torrentpier/torrentpier/pull/1582), [\#1585](https://github.com/torrentpier/torrentpier/pull/1585) ([belomaxorka](https://github.com/belomaxorka))
- Added some new HTML meta-tags [\#1562](https://github.com/torrentpier/torrentpier/pull/1562) ([belomaxorka](https://github.com/belomaxorka))
- Added showing releaser stats in profile [\#1568](https://github.com/torrentpier/torrentpier/pull/1568) ([belomaxorka](https://github.com/belomaxorka))
- Demo mode: Save user language in cookies [\#1584](https://github.com/torrentpier/torrentpier/pull/1584) ([belomaxorka](https://github.com/belomaxorka))
diff --git a/common.php b/common.php
index dfc54f43d..b50e65ea8 100644
--- a/common.php
+++ b/common.php
@@ -54,7 +54,7 @@ require_once BB_PATH . '/library/defines.php';
// Composer
if (!is_file(BB_PATH . '/vendor/autoload.php')) {
- die('Please install composer and run composer install
');
+ die('🔩 Manual install: Install composer and run composer install
. ☕️ Quick install: Run php install.php
in CLI mode.');
}
require_once BB_PATH . '/vendor/autoload.php';
@@ -75,7 +75,7 @@ try {
$dotenv = Dotenv\Dotenv::createMutable(BB_PATH);
$dotenv->load();
} catch (\Dotenv\Exception\InvalidPathException $pathException) {
- die('Please rename from .env.example
to .env
, and configure it');
+ die('🔩 Manual install: Rename from .env.example
to .env
, and configure it. ☕️ Quick install: Run php install.php
in CLI mode.');
}
// Load config
diff --git a/install.php b/install.php
index 33ff6e7b6..8e6a165e7 100644
--- a/install.php
+++ b/install.php
@@ -7,7 +7,7 @@
* @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License
*/
-define('ROOT', __DIR__ . '/');
+define('BB_ROOT', __DIR__ . '/');
// Check CLI mode
if (php_sapi_name() !== 'cli') {
@@ -15,15 +15,30 @@ if (php_sapi_name() !== 'cli') {
}
// Check if already installed
-if (is_file(ROOT . '.env')) {
+if (is_file(BB_ROOT . '.env')) {
+ out('- TorrentPier already installed', 'error');
exit;
}
-// Check readline extension
-if (!extension_loaded('readline')) {
- out('- ext-readline not found. Check out PHP instance', 'error');
- exit;
-}
+/**
+ * System requirements
+ */
+define('CHECK_REQUIREMENTS', [
+ 'status' => true,
+ 'php_min_version' => '8.1.0',
+ 'ext_list' => [
+ 'json',
+ 'curl',
+ 'readline',
+ 'mysqli',
+ 'bcmath',
+ 'mbstring',
+ 'intl',
+ 'xml',
+ 'xmlwriter',
+ 'zip'
+ ],
+]);
/**
* Colored console output
@@ -126,29 +141,48 @@ function chmod_r(string $dir, int $dirPermissions, int $filePermissions): void
// Welcoming message
out("--- TorrentPier Installer ---\n", 'info');
+// Checking extensions
+out("- Checking installed extensions...", 'info');
+
+// [1] Check PHP Version
+if (!version_compare(PHP_VERSION, CHECK_REQUIREMENTS['php_min_version'], '>=')) {
+ out("- TorrentPier requires PHP version " . CHECK_REQUIREMENTS['php_min_version'] . "+ Your PHP version " . PHP_VERSION, 'error');
+}
+
+// [2] Check installed PHP Extensions on server
+foreach (CHECK_REQUIREMENTS['ext_list'] as $ext) {
+ if (!extension_loaded($ext)) {
+ out("- ext-$ext not installed", 'error');
+ exit;
+ } else {
+ out("- ext-$ext installed!");
+ }
+}
+out("- All extensions are installed!\n", 'success');
+
// Setting permissions
-out('- Setting permissions for folders...', 'info');
-chmod_r(ROOT . 'data', 0755, 0644);
-chmod_r(ROOT . 'internal_data', 0755, 0644);
-chmod_r(ROOT . 'sitemap', 0755, 0644);
+out("- Setting permissions for folders...", 'info');
+chmod_r(BB_ROOT . 'data', 0755, 0644);
+chmod_r(BB_ROOT . 'internal_data', 0755, 0644);
+chmod_r(BB_ROOT . 'sitemap', 0755, 0644);
out("- Permissions successfully applied!\n", 'success');
// Check composer installation
-if (!is_file(ROOT . 'vendor/autoload.php')) {
+if (!is_file(BB_ROOT . 'vendor/autoload.php')) {
out('- Hmm, it seems there are no Composer dependencies', 'info');
// Downloading composer
- if (!is_file(ROOT . 'composer.phar')) {
+ if (!is_file(BB_ROOT . 'composer.phar')) {
out('- Downloading Composer...', 'info');
- if (copy('https://getcomposer.org/installer', ROOT . 'composer-setup.php')) {
+ if (copy('https://getcomposer.org/installer', BB_ROOT . 'composer-setup.php')) {
out("- Composer successfully downloaded!\n", 'success');
- runProcess('php ' . ROOT . 'composer-setup.php');
+ runProcess('php ' . BB_ROOT . 'composer-setup.php');
} else {
out('- Cannot download Composer', 'error');
exit;
}
- if (is_file(ROOT . 'composer-setup.php')) {
- if (unlink(ROOT . 'composer-setup.php')) {
+ if (is_file(BB_ROOT . 'composer-setup.php')) {
+ if (unlink(BB_ROOT . 'composer-setup.php')) {
out("- Composer installation file successfully removed!\n", 'success');
} else {
out('- Cannot remove Composer installation file. Delete it manually', 'warning');
@@ -157,9 +191,9 @@ if (!is_file(ROOT . 'vendor/autoload.php')) {
}
// Installing dependencies
- if (is_file(ROOT . 'composer.phar')) {
+ if (is_file(BB_ROOT . 'composer.phar')) {
out('- Installing dependencies...', 'info');
- runProcess('php ' . ROOT . 'composer.phar install --no-interaction --no-ansi');
+ runProcess('php ' . BB_ROOT . 'composer.phar install --no-interaction --no-ansi');
out("- Completed!\n", 'success');
} else {
out('- composer.phar not found', 'error');
@@ -168,8 +202,8 @@ if (!is_file(ROOT . 'vendor/autoload.php')) {
}
// Preparing ENV
-if (is_file(ROOT . '.env.example') && !is_file(ROOT . '.env')) {
- if (copy(ROOT . '.env.example', ROOT . '.env')) {
+if (is_file(BB_ROOT . '.env.example') && !is_file(BB_ROOT . '.env')) {
+ if (copy(BB_ROOT . '.env.example', BB_ROOT . '.env')) {
out("- Environment file created!\n", 'success');
} else {
out('- Cannot create environment file', 'error');
@@ -184,10 +218,10 @@ $DB_DATABASE = '';
$DB_USERNAME = '';
$DB_PASSWORD = '';
-if (is_file(ROOT . '.env')) {
+if (is_file(BB_ROOT . '.env')) {
out("--- Configuring TorrentPier ---", 'info');
- $envContent = file_get_contents(ROOT . '.env');
+ $envContent = file_get_contents(BB_ROOT . '.env');
if ($envContent === false) {
out('- Cannot open environment file', 'error');
exit;
@@ -217,13 +251,13 @@ if (is_file(ROOT . '.env')) {
$$key = $newValue;
}
}
-
- $editedLines[] = $line;
}
+
+ $editedLines[] = $line;
}
$newEnvContent = implode("\n", $editedLines);
- if (file_put_contents(ROOT . '.env', $newEnvContent)) {
+ if (file_put_contents(BB_ROOT . '.env', $newEnvContent)) {
out("- TorrentPier successfully configured!\n", 'success');
} else {
out('- Cannot save environment file', 'error');
@@ -266,7 +300,7 @@ if (!empty($DB_HOST) && !empty($DB_DATABASE) && !empty($DB_USERNAME)) {
$conn->select_db($DB_DATABASE);
// Checking SQL dump
- $dumpPath = ROOT . 'install/sql/mysql.sql';
+ $dumpPath = BB_ROOT . 'install/sql/mysql.sql';
if (is_file($dumpPath) && is_readable($dumpPath)) {
out('- SQL dump file found and readable!', 'success');
} else {
From aca756ea67f1c857ec80fa4fc4dca64749bed0c1 Mon Sep 17 00:00:00 2001
From: Roman Kelesidis
Date: Sun, 11 Aug 2024 14:29:37 +0700
Subject: [PATCH 3/9] Improved `filelist.php` (#1586)
* Improved filelist.php
* Update filelist.tpl
* Update filelist.php
* Update filelist.php
* Update CHANGELOG.md
* Update filelist.php
* Updated
* Update filelist.php
* Update filelist.tpl
* Updated
* Update filelist.php
* Update filelist.php
* Update filelist.php
* Update filelist.php
* Updated
* Update filelist.tpl
* Update filelist.php
* Update install.php
* Update install.php
* Update install.php
* Update install.php
* Update install.php
* Update install.php
* Update install.php
* Updated
* Updated
* Updated
* Updated
* Update filelist.php
* Update filelist.tpl
* Updated
* Update main.php
---
CHANGELOG.md | 1 +
filelist.php | 165 ++++----------------------
install.php | 78 ++++++++++--
library/language/source/main.php | 7 +-
styles/templates/default/filelist.tpl | 43 +++++++
5 files changed, 140 insertions(+), 154 deletions(-)
create mode 100644 styles/templates/default/filelist.tpl
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e80da16f7..209267f27 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@
- [CLI] TorrentPier installer ☕️ [\#1576](https://github.com/torrentpier/torrentpier/pull/1576), [\#1582](https://github.com/torrentpier/torrentpier/pull/1582), [\#1585](https://github.com/torrentpier/torrentpier/pull/1585) ([belomaxorka](https://github.com/belomaxorka))
- Added some new HTML meta-tags [\#1562](https://github.com/torrentpier/torrentpier/pull/1562) ([belomaxorka](https://github.com/belomaxorka))
- Added showing releaser stats in profile [\#1568](https://github.com/torrentpier/torrentpier/pull/1568) ([belomaxorka](https://github.com/belomaxorka))
+- Improved `filelist.php` [\#1586](https://github.com/torrentpier/torrentpier/pull/1586) ([belomaxorka](https://github.com/belomaxorka))
- Demo mode: Save user language in cookies [\#1584](https://github.com/torrentpier/torrentpier/pull/1584) ([belomaxorka](https://github.com/belomaxorka))
- Fixed `md5()` deprecated in PHP 8.4 [\#1561](https://github.com/torrentpier/torrentpier/pull/1561) ([belomaxorka](https://github.com/belomaxorka))
- Increased `USEREMAIL_MAX_LENGTH` [\#1566](https://github.com/torrentpier/torrentpier/pull/1566) ([belomaxorka](https://github.com/belomaxorka))
diff --git a/filelist.php b/filelist.php
index cdf8a1fc7..3b4412928 100644
--- a/filelist.php
+++ b/filelist.php
@@ -7,6 +7,8 @@
* @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License
*/
+define('BB_SCRIPT', 'filelist');
+
require __DIR__ . '/common.php';
// Start session management
@@ -17,7 +19,6 @@ if ($bb_cfg['bt_disable_dht'] && IS_GUEST) {
}
$topic_id = isset($_GET[POST_TOPIC_URL]) ? (int)$_GET[POST_TOPIC_URL] : 0;
-
if (!$topic_id) {
bb_simple_die($lang['INVALID_TOPIC_ID'], 404);
}
@@ -28,9 +29,8 @@ $sql = 'SELECT t.attach_id, t.info_hash, t.info_hash_v2, t.size, ad.physical_fil
ON t.attach_id = ad.attach_id
WHERE t.topic_id = ' . $topic_id . '
LIMIT 1';
-$row = DB()->fetch_row($sql);
-if (empty($row['physical_filename'])) {
+if (!$row = DB()->fetch_row($sql)) {
bb_simple_die($lang['INVALID_TOPIC_ID_DB'], 404);
}
@@ -44,13 +44,11 @@ $t_files_field = $meta_v2 ? 'getFileTree' : 'getFiles';
$t_hash_field = $meta_v2 ? 'piecesRoot' : 'sha1';
$file_path = get_attachments_dir() . '/' . $row['physical_filename'];
-
if (!is_file($file_path)) {
bb_simple_die($lang['TOR_NOT_FOUND'], 410);
}
$file_contents = file_get_contents($file_path);
-
if ($bb_cfg['flist_max_files']) {
$filetree_pos = $meta_v2 ? strpos($file_contents, '9:file tree') : false;
$files_pos = $meta_v1 ? strpos($file_contents, '5:files', $filetree_pos) : false;
@@ -77,149 +75,34 @@ if (IS_GUEST && $torrent->isPrivate()) {
}
$files = $torrent->$t_version_field()->$t_files_field();
-
if ($meta_v1 && $meta_v2) {
$files = new \RecursiveIteratorIterator($files); // Flatten the list
}
-$allFiles = '';
+$files_count = 0;
foreach ($files as $file) {
- $allFiles .= '' . clean_tor_dirname(implode('/', $file->path)) . ' ' . humn_size($file->length, 2) . ' ' . $file->$t_hash_field . ' ';
+ $files_count++;
+ $row_class = ($files_count % 2) ? 'row1' : 'row2';
+ $template->assign_block_vars('filelist', [
+ 'ROW_NUMBER' => $files_count,
+ 'ROW_CLASS' => $row_class,
+ 'FILE_PATH' => clean_tor_dirname(implode('/', $file->path)),
+ 'FILE_LENGTH' => humn_size($file->length, 2),
+ 'FILE_HASH' => $file->$t_hash_field ?? '-'
+ ]);
}
-$data = [
- 'name' => !empty($t_name = $torrent->getName()) ? htmlCHR(substr($t_name, 0, 255)) : 'undefined',
- 'client' => !empty($creator = $torrent->getCreatedBy()) ? htmlCHR(substr($creator, 0, 20)) : 'unknown client',
- 'date' => (!empty($dt = $torrent->getCreationDate()) && is_numeric($creation_date = $dt->getTimestamp())) ? date('d-M-Y H:i (e)', $creation_date) : $lang['UNKNOWN'],
- 'size' => humn_size($row['size'], 2),
- 'file_count' => iterator_count($files),
- 'site_url' => FULL_URL,
- 'topic_url' => TOPIC_URL . $topic_id,
-];
+$torrent_name = !empty($t_name = $torrent->getName()) ? htmlCHR(str_short($t_name, 200)) : $lang['UNKNOWN'];
+$torrent_size = humn_size($row['size'], 2);
-header('Cache-Control: public, max-age=3600');
+$template->assign_vars([
+ 'PAGE_TITLE' => "$torrent_name (" . $torrent_size . ")",
+ 'FILES_COUNT' => sprintf($lang['BT_FLIST_FILE_PATH'], declension(iterator_count($files), 'files')),
+ 'TORRENT_CREATION_DATE' => (!empty($dt = $torrent->getCreationDate()) && is_numeric($creation_date = $dt->getTimestamp())) ? date('d-M-Y H:i (e)', $creation_date) : $lang['UNKNOWN'],
+ 'TORRENT_CLIENT' => !empty($creator = $torrent->getCreatedBy()) ? htmlCHR(str_short($creator, 20)) : $lang['UNKNOWN'],
-echo <<
-
-
-
-
-
-
-
-
-
-
-
-
-
+ 'BTMR_NOTICE' => sprintf($lang['BT_FLIST_BTMR_NOTICE'], 'https://github.com/kovalensky/tmrr'),
+ 'U_TOPIC' => TOPIC_URL . $topic_id,
+]);
-{$data['name']} ({$data['size']}) | {$bb_cfg['sitename']}
-
-
-
-← Back to the topic
-
- Name: {$data['name']} | Date: {$data['date']} | Size: {$data['size']}
-
-
Created by: {$data['client']}
-
-
-
-
- Path ({$data['file_count']} files)
- Size
-
- BTMR hash
- ?
-
- BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as
- Torrent Merkle Root Reader.
-
-
-
-
- {$allFiles}
-
-Generated by TorrentPier
-
-
-
-EOF;
+print_page('filelist.tpl');
diff --git a/install.php b/install.php
index 8e6a165e7..e6223bb69 100644
--- a/install.php
+++ b/install.php
@@ -14,17 +14,10 @@ if (php_sapi_name() !== 'cli') {
die('Please run php ' . basename(__FILE__) . '
in CLI mode');
}
-// Check if already installed
-if (is_file(BB_ROOT . '.env')) {
- out('- TorrentPier already installed', 'error');
- exit;
-}
-
/**
* System requirements
*/
define('CHECK_REQUIREMENTS', [
- 'status' => true,
'php_min_version' => '8.1.0',
'ext_list' => [
'json',
@@ -105,6 +98,27 @@ function runProcess(string $cmd, string $input = null): void
proc_close($process);
}
+/**
+ * Remove directory recursively
+ *
+ * @param string $dir
+ * @return void
+ */
+function rmdir_rec(string $dir): void
+{
+ $it = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
+ $files = new RecursiveIteratorIterator($it,
+ RecursiveIteratorIterator::CHILD_FIRST);
+ foreach ($files as $file) {
+ if ($file->isDir()) {
+ rmdir($file->getPathname());
+ } else {
+ unlink($file->getPathname());
+ }
+ }
+ rmdir($dir);
+}
+
/**
* Setting permissions recursively
*
@@ -123,11 +137,11 @@ function chmod_r(string $dir, int $dirPermissions, int $filePermissions): void
$fullPath = realpath($dir . '/' . $file);
if (is_dir($fullPath)) {
- out("- Directory: $fullPath");
+ // out("- Directory: $fullPath");
chmod($fullPath, $dirPermissions);
chmod_r($fullPath, $dirPermissions, $filePermissions);
} elseif (is_file($fullPath)) {
- out("- File: $fullPath");
+ // out("- File: $fullPath");
chmod($fullPath, $filePermissions);
} else {
out("- Cannot find target path: $fullPath", 'error');
@@ -160,8 +174,48 @@ foreach (CHECK_REQUIREMENTS['ext_list'] as $ext) {
}
out("- All extensions are installed!\n", 'success');
-// Setting permissions
-out("- Setting permissions for folders...", 'info');
+// Check if already installed
+if (is_file(BB_ROOT . '.env')) {
+ out('- TorrentPier already installed', 'warning');
+ echo 'Are you sure want to re-install TorrentPier? [y/N]: ';
+ if (readline() === 'y') {
+ out("\n- Re-install process started...", 'info');
+ // environment
+ if (is_file(BB_ROOT . '.env')) {
+ if (unlink(BB_ROOT . '.env')) {
+ out('- Environment file successfully removed!');
+ } else {
+ out('- Cannot remove environment (.env) file. Delete it manually', 'error');
+ exit;
+ }
+ }
+ // composer.phar
+ if (is_file(BB_ROOT . 'composer.phar')) {
+ if (unlink(BB_ROOT . 'composer.phar')) {
+ out("- composer.phar file successfully removed!");
+ } else {
+ out('- Cannot remove composer.phar file. Delete it manually', 'error');
+ exit;
+ }
+ }
+ // composer dir
+ if (is_dir(BB_ROOT . 'vendor')) {
+ rmdir_rec(BB_ROOT . 'vendor');
+ if (!is_dir(BB_ROOT . 'vendor')) {
+ out("- Composer directory successfully removed!");
+ } else {
+ out('- Cannot remove Composer directory. Delete it manually', 'error');
+ exit;
+ }
+ }
+ out("- Re-install process completed!\n", 'success');
+ } else {
+ exit;
+ }
+}
+
+// Applying permissions
+out("- Applying permissions for folders...", 'info');
chmod_r(BB_ROOT . 'data', 0755, 0644);
chmod_r(BB_ROOT . 'internal_data', 0755, 0644);
chmod_r(BB_ROOT . 'sitemap', 0755, 0644);
@@ -194,7 +248,7 @@ if (!is_file(BB_ROOT . 'vendor/autoload.php')) {
if (is_file(BB_ROOT . 'composer.phar')) {
out('- Installing dependencies...', 'info');
runProcess('php ' . BB_ROOT . 'composer.phar install --no-interaction --no-ansi');
- out("- Completed!\n", 'success');
+ out("- Completed! Composer dependencies are installed!\n", 'success');
} else {
out('- composer.phar not found', 'error');
exit;
diff --git a/library/language/source/main.php b/library/language/source/main.php
index 1fc121473..81733a4ce 100644
--- a/library/language/source/main.php
+++ b/library/language/source/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Another torrent with same info_hash already Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Remove from tracker';
$lang['BT_UNREGISTERED'] = 'Torrent unregistered';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['reply', 'replies'];
$lang['DECLENSION']['TIMES'] = ['time', 'times'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['second', 'seconds'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL speed';
$lang['DL_DL_SPEED'] = 'DL speed';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formula: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'stopped';
diff --git a/styles/templates/default/filelist.tpl b/styles/templates/default/filelist.tpl
new file mode 100644
index 000000000..25f9a9cc1
--- /dev/null
+++ b/styles/templates/default/filelist.tpl
@@ -0,0 +1,43 @@
+{PAGE_TITLE}
+
+ {L_BT_FLIST_CREATION_DATE}: {TORRENT_CREATION_DATE}
+ {L_DL_CLIENT}: {TORRENT_CLIENT}
+
+
+
+
+
+
+ #
+ {FILES_COUNT}
+ {L_SIZE}
+ {L_BT_FLIST_BTMR_HASH}
+
+
+
+
+
+ {filelist.ROW_NUMBER}
+ {filelist.FILE_PATH}
+ {filelist.FILE_LENGTH}
+ {filelist.FILE_HASH}
+
+
+
+
+
+ {BTMR_NOTICE}
+
+
+
+
+
+
From 6c1db78204c33abb1dc2b047f270814955ee5dcd Mon Sep 17 00:00:00 2001
From: Roman Kelesidis
Date: Sun, 11 Aug 2024 14:47:49 +0700
Subject: [PATCH 4/9] =?UTF-8?q?Added=20robots=20meta-tag=20support=20?=
=?UTF-8?q?=F0=9F=A4=96=20(#1587)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Added robots meta-tag support 🤖
* Update CHANGELOG.md
* Update page_header.php
---
CHANGELOG.md | 1 +
library/includes/page_header.php | 1 +
styles/templates/default/page_header.tpl | 5 +++++
3 files changed, 7 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 209267f27..fc9b14fb4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@
- Release 2.4.5 🦕 ([belomaxorka](https://github.com/belomaxorka))
- [CLI] TorrentPier installer ☕️ [\#1576](https://github.com/torrentpier/torrentpier/pull/1576), [\#1582](https://github.com/torrentpier/torrentpier/pull/1582), [\#1585](https://github.com/torrentpier/torrentpier/pull/1585) ([belomaxorka](https://github.com/belomaxorka))
- Added some new HTML meta-tags [\#1562](https://github.com/torrentpier/torrentpier/pull/1562) ([belomaxorka](https://github.com/belomaxorka))
+- Added robots meta-tag support 🤖 [\#1587](https://github.com/torrentpier/torrentpier/pull/1587) ([belomaxorka](https://github.com/belomaxorka))
- Added showing releaser stats in profile [\#1568](https://github.com/torrentpier/torrentpier/pull/1568) ([belomaxorka](https://github.com/belomaxorka))
- Improved `filelist.php` [\#1586](https://github.com/torrentpier/torrentpier/pull/1586) ([belomaxorka](https://github.com/belomaxorka))
- Demo mode: Save user language in cookies [\#1584](https://github.com/torrentpier/torrentpier/pull/1584) ([belomaxorka](https://github.com/belomaxorka))
diff --git a/library/includes/page_header.php b/library/includes/page_header.php
index 0429f9389..d65d5c97e 100644
--- a/library/includes/page_header.php
+++ b/library/includes/page_header.php
@@ -122,6 +122,7 @@ $template->assign_vars([
'USER_OPTIONS_JS' => IS_GUEST ? '{}' : json_encode($user->opt_js, JSON_THROW_ON_ERROR),
'USE_TABLESORTER' => !empty($page_cfg['use_tablesorter']),
+ 'ALLOW_ROBOTS' => !$bb_cfg['board_disable'] && (!isset($page_cfg['allow_robots']) || $page_cfg['allow_robots'] === true),
'SITENAME' => $bb_cfg['sitename'],
'U_INDEX' => BB_ROOT . 'index.php',
diff --git a/styles/templates/default/page_header.tpl b/styles/templates/default/page_header.tpl
index f96d8a5e4..6cd69b151 100644
--- a/styles/templates/default/page_header.tpl
+++ b/styles/templates/default/page_header.tpl
@@ -14,6 +14,11 @@
+
+
+
+
+
From 1f2d821e60e55bab720cd04e7a96d57c87ac262d Mon Sep 17 00:00:00 2001
From: Yury Pikhtarev
Date: Sun, 11 Aug 2024 11:58:46 +0400
Subject: [PATCH 5/9] New Crowdin updates (#1588)
* New translations main.php (Romanian)
* New translations main.php (French)
* New translations main.php (Spanish)
* New translations main.php (Afrikaans)
* New translations main.php (Arabic)
* New translations main.php (Belarusian)
* New translations main.php (Bulgarian)
* New translations main.php (Catalan)
* New translations main.php (Czech)
* New translations main.php (Danish)
* New translations main.php (German)
* New translations main.php (Greek)
* New translations main.php (Finnish)
* New translations main.php (Hebrew)
* New translations main.php (Hungarian)
* New translations main.php (Armenian)
* New translations main.php (Italian)
* New translations main.php (Japanese)
* New translations main.php (Georgian)
* New translations main.php (Korean)
* New translations main.php (Lithuanian)
* New translations main.php (Dutch)
* New translations main.php (Norwegian)
* New translations main.php (Polish)
* New translations main.php (Russian)
* New translations main.php (Slovak)
* New translations main.php (Slovenian)
* New translations main.php (Albanian)
* New translations main.php (Serbian (Cyrillic))
* New translations main.php (Swedish)
* New translations main.php (Turkish)
* New translations main.php (Ukrainian)
* New translations main.php (Chinese Traditional)
* New translations main.php (English)
* New translations main.php (Vietnamese)
* New translations main.php (Portuguese, Brazilian)
* New translations main.php (Indonesian)
* New translations main.php (Thai)
* New translations main.php (Croatian)
* New translations main.php (Kazakh)
* New translations main.php (Estonian)
* New translations main.php (Latvian)
* New translations main.php (Azerbaijani)
* New translations main.php (Hindi)
* New translations main.php (Bosnian)
* New translations main.php (Uzbek)
* New translations main.php (Tajik)
---
library/language/af/main.php | 7 ++++++-
library/language/ar/main.php | 7 ++++++-
library/language/az/main.php | 7 ++++++-
library/language/be/main.php | 7 ++++++-
library/language/bg/main.php | 7 ++++++-
library/language/bs/main.php | 7 ++++++-
library/language/ca/main.php | 7 ++++++-
library/language/cs/main.php | 7 ++++++-
library/language/da/main.php | 7 ++++++-
library/language/de/main.php | 7 ++++++-
library/language/el/main.php | 7 ++++++-
library/language/en/main.php | 7 ++++++-
library/language/es/main.php | 7 ++++++-
library/language/et/main.php | 7 ++++++-
library/language/fi/main.php | 7 ++++++-
library/language/fr/main.php | 7 ++++++-
library/language/he/main.php | 7 ++++++-
library/language/hi/main.php | 7 ++++++-
library/language/hr/main.php | 7 ++++++-
library/language/hu/main.php | 7 ++++++-
library/language/hy/main.php | 7 ++++++-
library/language/id/main.php | 7 ++++++-
library/language/it/main.php | 7 ++++++-
library/language/ja/main.php | 7 ++++++-
library/language/ka/main.php | 7 ++++++-
library/language/kk/main.php | 7 ++++++-
library/language/ko/main.php | 7 ++++++-
library/language/lt/main.php | 7 ++++++-
library/language/lv/main.php | 7 ++++++-
library/language/nl/main.php | 7 ++++++-
library/language/no/main.php | 7 ++++++-
library/language/pl/main.php | 7 ++++++-
library/language/pt/main.php | 7 ++++++-
library/language/ro/main.php | 7 ++++++-
library/language/ru/main.php | 23 ++++++++++++++---------
library/language/sk/main.php | 7 ++++++-
library/language/sl/main.php | 7 ++++++-
library/language/sq/main.php | 7 ++++++-
library/language/sr/main.php | 7 ++++++-
library/language/sv/main.php | 7 ++++++-
library/language/tg/main.php | 7 ++++++-
library/language/th/main.php | 7 ++++++-
library/language/tr/main.php | 7 ++++++-
library/language/uk/main.php | 7 ++++++-
library/language/uz/main.php | 7 ++++++-
library/language/vi/main.php | 7 ++++++-
library/language/zh/main.php | 7 ++++++-
47 files changed, 290 insertions(+), 55 deletions(-)
diff --git a/library/language/af/main.php b/library/language/af/main.php
index 3c3047751..a89a61b58 100644
--- a/library/language/af/main.php
+++ b/library/language/af/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Nog \'n stroom met dieselfde info_hash al Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Verwyder van spoorsnyer';
$lang['BT_UNREGISTERED'] = 'Torrent ongeregistreerde';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['antwoord', 'antwoorde'];
$lang['DECLENSION']['TIMES'] = ['tyd', 'keer'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['tweede', 'sekondes'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL spoed';
$lang['DL_DL_SPEED'] = 'DL spoed';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formule: Opgelaai / TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'gestop';
diff --git a/library/language/ar/main.php b/library/language/ar/main.php
index 45ebd596e..5f5c81c04 100644
--- a/library/language/ar/main.php
+++ b/library/language/ar/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'آخر سيل مع نفسه info_hash بالف
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'إزالة من تعقب';
$lang['BT_UNREGISTERED'] = 'سيل غير المسجلين';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['رد', 'الردود'];
$lang['DECLENSION']['TIMES'] = ['الوقت', 'مرات'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['الثاني', 'ثانية'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL السرعة';
$lang['DL_DL_SPEED'] = 'دل السرعة';
$lang['DL_PORT'] = 'ميناء';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'الصيغة: تحميل/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'توقفت';
diff --git a/library/language/az/main.php b/library/language/az/main.php
index d853dd729..587e26913 100644
--- a/library/language/az/main.php
+++ b/library/language/az/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Digər torrent ilə eyni info_hash artıq Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Aradan qaldırılması tracker';
$lang['BT_UNREGISTERED'] = 'Torrent qeydiyyata alınmamış';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1647,6 +1651,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['cavab', 'cavablar'];
$lang['DECLENSION']['TIMES'] = ['vaxt', 'dəfə'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['ikinci', 'saniyə'],
@@ -1840,7 +1845,7 @@ $lang['DL_DL'] = 'Dl';
$lang['DL_UL_SPEED'] = 'Sürət küç';
$lang['DL_DL_SPEED'] = 'Sürət dl';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Tərkibi: Dolu/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'dayandırdı';
diff --git a/library/language/be/main.php b/library/language/be/main.php
index 45d0d44e4..1024baeb9 100644
--- a/library/language/be/main.php
+++ b/library/language/be/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Іншы торэнт з такім жа info_
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Выдаліць з трэкера';
$lang['BT_UNREGISTERED'] = 'Торэнт незарэгістраваных';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['адказ', 'адказы'];
$lang['DECLENSION']['TIMES'] = ['час', 'раз'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['другі', 'секунд'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'Дл';
$lang['DL_UL_SPEED'] = 'Хуткасць вул';
$lang['DL_DL_SPEED'] = 'Хуткасць дл';
$lang['DL_PORT'] = 'Порт';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Формула: Загружаны/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'спыніўся';
diff --git a/library/language/bg/main.php b/library/language/bg/main.php
index bf07bf7eb..0f18bcaaa 100644
--- a/library/language/bg/main.php
+++ b/library/language/bg/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Друг торент със същото info
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Изтрий от тракера';
$lang['BT_UNREGISTERED'] = 'Торент нерегистрирани';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1646,6 +1650,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['отговор', 'отговори'];
$lang['DECLENSION']['TIMES'] = ['време', 'път'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['втората', 'секунди'],
@@ -1839,7 +1844,7 @@ $lang['DL_DL'] = 'Дл';
$lang['DL_UL_SPEED'] = 'Скорост на ул.';
$lang['DL_DL_SPEED'] = 'Скорост на дл';
$lang['DL_PORT'] = 'Пристанище';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Формула: Качил/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'спря';
diff --git a/library/language/bs/main.php b/library/language/bs/main.php
index 28fc9d638..aaf27119e 100644
--- a/library/language/bs/main.php
+++ b/library/language/bs/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Još bujicama sa isti info_hash već Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Ukloni od tragač';
$lang['BT_UNREGISTERED'] = 'Bujicama neprijavljeni';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['odgovor', 'odgovara'];
$lang['DECLENSION']['TIMES'] = ['vrijeme', 'puta'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['drugi', 'sekundi'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL brzinom';
$lang['DL_DL_SPEED'] = 'DL brzinom';
$lang['DL_PORT'] = 'Luke';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formulu: Postavio/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'prestao';
diff --git a/library/language/ca/main.php b/library/language/ca/main.php
index 992cbbebb..b250fb6c0 100644
--- a/library/language/ca/main.php
+++ b/library/language/ca/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Un altre torrent amb la mateixa info_hash ja <
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Retirar del tracker';
$lang['BT_UNREGISTERED'] = 'Torrent no registrats';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['resposta', 'les respostes'];
$lang['DECLENSION']['TIMES'] = ['temps', 'temps'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['segona', 'segons'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL velocitat';
$lang['DL_DL_SPEED'] = 'DL velocitat';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Fórmula: Pujades/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'aturar';
diff --git a/library/language/cs/main.php b/library/language/cs/main.php
index 0af6dfbca..6c95ab99b 100644
--- a/library/language/cs/main.php
+++ b/library/language/cs/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Další torrent se stejným info_hash již Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Odstranit z tracker';
$lang['BT_UNREGISTERED'] = 'Torrent neregistrované';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['odpověď', 'odpovědi'];
$lang['DECLENSION']['TIMES'] = ['čas', 'časy'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['druhý', 'sekund'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL rychlost';
$lang['DL_DL_SPEED'] = 'DL rychlost';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Vzorec: Nahrál/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'zastavil';
diff --git a/library/language/da/main.php b/library/language/da/main.php
index e33131935..7d3f35c85 100644
--- a/library/language/da/main.php
+++ b/library/language/da/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'En anden torrent med samme info_hash allerede
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Fjern fra tracker';
$lang['BT_UNREGISTERED'] = 'Torrent uregistrerede';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['svar', 'svar'];
$lang['DECLENSION']['TIMES'] = ['tid', 'tider'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['andet', 'sekunder'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL hastighed';
$lang['DL_DL_SPEED'] = 'DL hastighed';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formel: Uploades/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'stoppet';
diff --git a/library/language/de/main.php b/library/language/de/main.php
index d80968cee..690f9f91b 100644
--- a/library/language/de/main.php
+++ b/library/language/de/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Anderen torrent mit der gleichen info_hash ber
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Entfernen von tracker';
$lang['BT_UNREGISTERED'] = 'Unregistered Torrent';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['Antwort', 'Antworten'];
$lang['DECLENSION']['TIMES'] = ['Zeit', 'mal'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['zweite', 'Sekunden'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL-Geschwindigkeit';
$lang['DL_DL_SPEED'] = 'DL-speed';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formel: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'gestoppt';
diff --git a/library/language/el/main.php b/library/language/el/main.php
index ad9f5fba0..1bc46d7d5 100644
--- a/library/language/el/main.php
+++ b/library/language/el/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Άλλο ένα torrent με το ίδιο inf
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Αφαιρέστε από τον ιχνηλάτη';
$lang['BT_UNREGISTERED'] = 'Torrent unregistered';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['απάντηση', 'απαντήσεις'];
$lang['DECLENSION']['TIMES'] = ['ώρα', 'φορές'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['δεύτερο', 'δευτερόλεπτα'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL ταχύτητα';
$lang['DL_DL_SPEED'] = 'DL ταχύτητα';
$lang['DL_PORT'] = 'Λιμάνι';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Τύπος: Αποστέλλονται/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'σταμάτησε';
diff --git a/library/language/en/main.php b/library/language/en/main.php
index e1e2f0c8c..c412f1650 100644
--- a/library/language/en/main.php
+++ b/library/language/en/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Another torrent with same info_hash already Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Remove from tracker';
$lang['BT_UNREGISTERED'] = 'Torrent unregistered';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['reply', 'replies'];
$lang['DECLENSION']['TIMES'] = ['time', 'times'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['second', 'seconds'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL speed';
$lang['DL_DL_SPEED'] = 'DL speed';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formula: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'stopped';
diff --git a/library/language/es/main.php b/library/language/es/main.php
index 83e2f67e0..7d887e093 100644
--- a/library/language/es/main.php
+++ b/library/language/es/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Otro torrent con el mismo info_hash ya Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Retirar del tracker';
$lang['BT_UNREGISTERED'] = 'Torrent no registrado';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['respuesta', 'respuestas'];
$lang['DECLENSION']['TIMES'] = ['tiempo', 'veces'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['segundo', 'segundos'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL velocidad';
$lang['DL_DL_SPEED'] = 'DL velocidad';
$lang['DL_PORT'] = 'Puerto';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Fórmula: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'parado';
diff --git a/library/language/et/main.php b/library/language/et/main.php
index bc2d242d5..dc345d275 100644
--- a/library/language/et/main.php
+++ b/library/language/et/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Teine torrent sama info_hash juba Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Eemalda tracker';
$lang['BT_UNREGISTERED'] = 'Torrent registreerimata';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['vastus', 'vastused'];
$lang['DECLENSION']['TIMES'] = ['aeg', 'korda'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['teine', 'sekundit'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL kiirus';
$lang['DL_DL_SPEED'] = 'DL speed';
$lang['DL_PORT'] = 'Sadam';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Valem: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'lõpetanud';
diff --git a/library/language/fi/main.php b/library/language/fi/main.php
index e51378c67..ec24b8a4d 100644
--- a/library/language/fi/main.php
+++ b/library/language/fi/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Toinen torrent kanssa samaa info_hash jo Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Poista tracker';
$lang['BT_UNREGISTERED'] = 'Torrent rekisteröimätön';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['vastaus', 'vastaukset'];
$lang['DECLENSION']['TIMES'] = ['aika', 'kertaa'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['toinen', 'sekuntia'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL-nopeus';
$lang['DL_DL_SPEED'] = 'DL-nopeus';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Kaava: Ladataan/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'pysähtyi';
diff --git a/library/language/fr/main.php b/library/language/fr/main.php
index ee728f072..d7fd62cd9 100644
--- a/library/language/fr/main.php
+++ b/library/language/fr/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Un autre torrent avec même info_hash déjà <
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Retirer du tracker';
$lang['BT_UNREGISTERED'] = 'Torrent non enregistré';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['répondre', 'réponses'];
$lang['DECLENSION']['TIMES'] = ['le temps', 'fois'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['deuxième', 'secondes'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL vitesse';
$lang['DL_DL_SPEED'] = 'DL vitesse';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formule: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'arrêté';
diff --git a/library/language/he/main.php b/library/language/he/main.php
index 312c83a49..3c9b98a33 100644
--- a/library/language/he/main.php
+++ b/library/language/he/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'עוד סיקור עם אותו info_hash כב
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'הסר מ-tracker';
$lang['BT_UNREGISTERED'] = 'סיקור לא רשומים';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['תגובה', 'תגובות'];
$lang['DECLENSION']['TIMES'] = ['זמן', 'פעמים'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['השני', 'שניות'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL מהירות';
$lang['DL_DL_SPEED'] = 'DL מהירות';
$lang['DL_PORT'] = 'נמל';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'הנוסחה: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'הפסיקה';
diff --git a/library/language/hi/main.php b/library/language/hi/main.php
index 885cce1bd..3678c73d1 100644
--- a/library/language/hi/main.php
+++ b/library/language/hi/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'उसी जानकारी के सा
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'ट्रैकर से निकालें';
$lang['BT_UNREGISTERED'] = 'टॉरेंट अपंजीकृत';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['जवाब दें', 'उत्तर'];
$lang['DECLENSION']['TIMES'] = ['पहर', 'टाइम्स'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['दूसरा', 'सेकंड'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'डीएल';
$lang['DL_UL_SPEED'] = 'उल गति';
$lang['DL_DL_SPEED'] = 'डीएल की गति';
$lang['DL_PORT'] = 'बंदरगाह';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'फॉर्मूला: अपलोड किया गया / टोरेंटिसिज़';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'रोका हुआ';
diff --git a/library/language/hr/main.php b/library/language/hr/main.php
index 244b22c36..c25fcb0f6 100644
--- a/library/language/hr/main.php
+++ b/library/language/hr/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Drugi torrent sa istim info_hash već Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Ukloni iz tracker';
$lang['BT_UNREGISTERED'] = 'Torrent neregistrirane';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1647,6 +1651,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['odgovor', 'odgovori'];
$lang['DECLENSION']['TIMES'] = ['vrijeme', 'put'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['drugi', 'sekundi'],
@@ -1840,7 +1845,7 @@ $lang['DL_DL'] = 'Dl';
$lang['DL_UL_SPEED'] = 'Brzina str';
$lang['DL_DL_SPEED'] = 'Brzina dl';
$lang['DL_PORT'] = 'Luka';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formula Je: Skinuti/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'zaustavljen';
diff --git a/library/language/hu/main.php b/library/language/hu/main.php
index 306875293..c956d97fe 100644
--- a/library/language/hu/main.php
+++ b/library/language/hu/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Egy másik torrent azonos info_hash már Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Távolítsa el a tracker';
$lang['BT_UNREGISTERED'] = 'Torrent regisztrált';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['válasz', 'válaszok'];
$lang['DECLENSION']['TIMES'] = ['idő', 'szer'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['második', 'másodperc'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL sebesség';
$lang['DL_DL_SPEED'] = 'DL sebesség';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Képlet: Feltöltött/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'megállt';
diff --git a/library/language/hy/main.php b/library/language/hy/main.php
index cc11fd762..c834cbfa9 100644
--- a/library/language/hy/main.php
+++ b/library/language/hy/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Այլ հեղեղ նույն info_hash արդ
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Հեռացնել ճանապարհները';
$lang['BT_UNREGISTERED'] = 'Հեղեղ չգրանցված';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1647,6 +1651,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['պատասխան', 'պատասխաններ'];
$lang['DECLENSION']['TIMES'] = ['ժամանակ', 'անգամ'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['երկրորդ', 'վայրկյան'],
@@ -1840,7 +1845,7 @@ $lang['DL_DL'] = 'Dl';
$lang['DL_UL_SPEED'] = 'Արագությունը փող';
$lang['DL_DL_SPEED'] = 'Արագությունը dl';
$lang['DL_PORT'] = 'Նավահանգիստ';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Բանաձեւը: Բեռնված/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'կանգ է առել';
diff --git a/library/language/id/main.php b/library/language/id/main.php
index 48f5a30d9..afab8737a 100644
--- a/library/language/id/main.php
+++ b/library/language/id/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Torrent lain yang sama info_hash sudah Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Hapus dari tracker';
$lang['BT_UNREGISTERED'] = 'Torrent terdaftar';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['balas', 'balasan'];
$lang['DECLENSION']['TIMES'] = ['waktu', 'kali'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['kedua', 'detik'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL kecepatan';
$lang['DL_DL_SPEED'] = 'DL kecepatan';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Rumus: Upload/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'berhenti';
diff --git a/library/language/it/main.php b/library/language/it/main.php
index 38afa9dd1..27e9183c3 100644
--- a/library/language/it/main.php
+++ b/library/language/it/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Un altro torrent con lo stesso info_hash già
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Togliere dal tracker';
$lang['BT_UNREGISTERED'] = 'Torrent non registrati';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['risposta', 'risposte'];
$lang['DECLENSION']['TIMES'] = ['tempo', 'volte'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['secondo', 'secondi'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL velocità';
$lang['DL_DL_SPEED'] = 'DL velocità';
$lang['DL_PORT'] = 'Porta';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formula: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'arrestato';
diff --git a/library/language/ja/main.php b/library/language/ja/main.php
index 57e16d3e1..b85ce62db 100644
--- a/library/language/ja/main.php
+++ b/library/language/ja/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = '他の激流を同じくinfo_hashてTorrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'トラッカーから削除';
$lang['BT_UNREGISTERED'] = '激流が未登録';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1648,6 +1652,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['返信', '回答'];
$lang['DECLENSION']['TIMES'] = ['時間', '倍'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['第', '秒'],
@@ -1841,7 +1846,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL速度';
$lang['DL_DL_SPEED'] = 'DL速度';
$lang['DL_PORT'] = '港';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = '式:掲載/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = '停止';
diff --git a/library/language/ka/main.php b/library/language/ka/main.php
index d9c250d06..380017863 100644
--- a/library/language/ka/main.php
+++ b/library/language/ka/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'კიდევ ერთი torrent იგი
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'ამოღება tracker';
$lang['BT_UNREGISTERED'] = 'Torrent არარეგისტრირებული';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['პასუხი', 'გამოხმაურება'];
$lang['DECLENSION']['TIMES'] = ['დრო', '- ჯერ'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['მეორე', 'წამი'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL სიჩქარე';
$lang['DL_DL_SPEED'] = 'DL სიჩქარე';
$lang['DL_PORT'] = 'პორტი';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'ფორმულა: აიტვირთა/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'შეწყვიტა';
diff --git a/library/language/kk/main.php b/library/language/kk/main.php
index b847c797e..71d98e6a6 100644
--- a/library/language/kk/main.php
+++ b/library/language/kk/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'қазірдің өзінде сол info_hash
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'трекер алып тастау';
$lang['BT_UNREGISTERED'] = 'Torrent тіркелмеген';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['жауап', 'жауап'];
$lang['DECLENSION']['TIMES'] = ['уақыт', 'рет'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['секунд', 'секунд'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL жылдамдығы';
$lang['DL_DL_SPEED'] = 'DL жылдамдығы';
$lang['DL_PORT'] = 'Порт';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Формула: Uploaded / TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'тоқтатты';
diff --git a/library/language/ko/main.php b/library/language/ko/main.php
index 3499317f7..cfa6f8c11 100644
--- a/library/language/ko/main.php
+++ b/library/language/ko/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = '다른 토렌트 같은 info_hash 이미 Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = '제거에서 추적';
$lang['BT_UNREGISTERED'] = 'Torrent 등록';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['답변', '답글'];
$lang['DECLENSION']['TIMES'] = ['시간', '시간'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['두 번째', '초'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL 속도';
$lang['DL_DL_SPEED'] = 'DL 속도';
$lang['DL_PORT'] = '트';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = '공식:에 업로드/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = '을 중지';
diff --git a/library/language/lt/main.php b/library/language/lt/main.php
index 8f1b39725..14610da75 100644
--- a/library/language/lt/main.php
+++ b/library/language/lt/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Kita torrent su pačiu info_hash jau Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Pašalinti iš tracker';
$lang['BT_UNREGISTERED'] = 'Torrent neregistruotas';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['atsakyti', 'atsakymai'];
$lang['DECLENSION']['TIMES'] = ['laikas', 'laikas'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['antras', 'sekundžių'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL greitis';
$lang['DL_DL_SPEED'] = 'DL greitis';
$lang['DL_PORT'] = 'Uostas';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formulė: Upload/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'sustojo';
diff --git a/library/language/lv/main.php b/library/language/lv/main.php
index 0a9dc1e2b..6afc8ef7f 100644
--- a/library/language/lv/main.php
+++ b/library/language/lv/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Citu torrent ar pašu info_hash jau Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Noņemt no tracker';
$lang['BT_UNREGISTERED'] = 'Torrent nereģistrētiem';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['atbildēt', 'atbildes'];
$lang['DECLENSION']['TIMES'] = ['laiks', 'reizes'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['otrais', 'sekundes'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL ātrums';
$lang['DL_DL_SPEED'] = 'DL ātrums';
$lang['DL_PORT'] = 'Ostas';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formula: Augšupielādēto/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'apturēts';
diff --git a/library/language/nl/main.php b/library/language/nl/main.php
index 4a539f0c7..2f595778f 100644
--- a/library/language/nl/main.php
+++ b/library/language/nl/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Een andere torrent met dezelfde info_hash al <
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Verwijder van drijver';
$lang['BT_UNREGISTERED'] = 'Torrent ongeregistreerde';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['beantwoorden', 'antwoorden'];
$lang['DECLENSION']['TIMES'] = ['tijd', 'tijden'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['tweede', 'seconden'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL-snelheid';
$lang['DL_DL_SPEED'] = 'DL snelheid';
$lang['DL_PORT'] = 'Poort';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formule: Uploaden/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'gestopt';
diff --git a/library/language/no/main.php b/library/language/no/main.php
index 07e5162ac..b4888318c 100644
--- a/library/language/no/main.php
+++ b/library/language/no/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'En annen torrent med samme info_hash allerede
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Fjern fra tracker';
$lang['BT_UNREGISTERED'] = 'Torrent uregistrerte';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['svar', 'svar'];
$lang['DECLENSION']['TIMES'] = ['tid', 'ganger'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['andre', 'sekunder'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL hastighet';
$lang['DL_DL_SPEED'] = 'DL hastighet';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formel: Lastet Opp/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'stoppet';
diff --git a/library/language/pl/main.php b/library/language/pl/main.php
index bc42c32f8..e5a0c70b5 100644
--- a/library/language/pl/main.php
+++ b/library/language/pl/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Inny torrent z takim samym info_hash już Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Usuń z trackera';
$lang['BT_UNREGISTERED'] = 'Torrent niezarejestrowanych';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1647,6 +1651,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['odpowiedź', 'odpowiedzi'];
$lang['DECLENSION']['TIMES'] = ['czas', 'raz'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['drugi', 'sekund'],
@@ -1840,7 +1845,7 @@ $lang['DL_DL'] = 'Dl';
$lang['DL_UL_SPEED'] = 'Prędkość ul';
$lang['DL_DL_SPEED'] = 'Prędkość dl';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formuła: Załadowany/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'zatrzymał się';
diff --git a/library/language/pt/main.php b/library/language/pt/main.php
index 9ad2fc83e..69e2cca14 100644
--- a/library/language/pt/main.php
+++ b/library/language/pt/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Outro torrent com o mesmo info_hash já Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Retire do tracker';
$lang['BT_UNREGISTERED'] = 'Torrent não registrado';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['responder', 'respostas'];
$lang['DECLENSION']['TIMES'] = ['tempo', 'vezes'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['segunda', 'segundos'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL velocidade';
$lang['DL_DL_SPEED'] = 'DL velocidade';
$lang['DL_PORT'] = 'Porta';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Fórmula: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'parado';
diff --git a/library/language/ro/main.php b/library/language/ro/main.php
index 1ae7cfe2f..9004c13ba 100644
--- a/library/language/ro/main.php
+++ b/library/language/ro/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Un alt torrent cu același info_hash deja Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Eliminați de la tracker';
$lang['BT_UNREGISTERED'] = 'Torrent neînregistrate';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['răspuns', 'răspunsurile'];
$lang['DECLENSION']['TIMES'] = ['timp', 'ori'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['a doua', 'secunde'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL viteză';
$lang['DL_DL_SPEED'] = 'Viteza de DL';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formula: Încărcat/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'oprit';
diff --git a/library/language/ru/main.php b/library/language/ru/main.php
index 7f4f183b9..2722c8191 100644
--- a/library/language/ru/main.php
+++ b/library/language/ru/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Другой торрент с таким же
$lang['BT_V1_ONLY_DISALLOWED'] = 'В данный момент администратор отключил только v1 торренты, разрешены: v2 и гибриды (hybrids)';
$lang['BT_V2_ONLY_DISALLOWED'] = 'В данный момент администратор отключил v2 торренты, разрешены: v1 и гибриды (hybrids)';
$lang['BT_FLIST_LIMIT'] = 'Настройки трекера не позволяют обрабатывать списки более чем с %d файлами. Текущее число: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Разрегистрировать торрент';
$lang['BT_UNREGISTERED'] = 'Торрент разрегистрирован';
$lang['BT_UNREGISTERED_ALREADY'] = 'Торрент уже разрегистрирован';
@@ -1642,16 +1646,17 @@ $lang['DELETE_POST_TXTB'] = '[x]';
$lang['MODERATE_POST_TXTB'] = '[m]';
$lang['SEND_PM_TXTB'] = '[ЛС]';
-$lang['DECLENSION']['REPLIES'] = ['ответ', 'ответа', 'ответов'];
-$lang['DECLENSION']['TIMES'] = ['раз', 'раза', 'раз'];
+$lang['DECLENSION']['REPLIES'] = ['ответ', 'ответа'];
+$lang['DECLENSION']['TIMES'] = ['раз', 'раза'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
- 'seconds' => ['секунда', 'секунды', 'секунд'],
- 'minutes' => ['минута', 'минуты', 'минут'],
- 'hours' => ['час', 'часа', 'часов'],
- 'mday' => ['день', 'дня', 'дней'],
- 'mon' => ['месяц', 'месяца', 'месяцев'],
- 'year' => ['год', 'года', 'лет'],
+ 'seconds' => ['секунда', 'секунды'],
+ 'minutes' => ['минута', 'минуты'],
+ 'hours' => ['час', 'часа'],
+ 'mday' => ['день', 'дня'],
+ 'mon' => ['месяц', 'месяца'],
+ 'year' => ['год', 'года'],
];
$lang['DELTA_TIME']['FORMAT'] = '%1$s %2$s'; // 5(%1) minutes(%2)
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'Скачано';
$lang['DL_UL_SPEED'] = 'Отдача';
$lang['DL_DL_SPEED'] = 'Загрузка';
$lang['DL_PORT'] = 'Порт';
-$lang['DL_CLIENT'] = 'Клиент';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Формула: Отдано/Размер раздачи';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'Остановил Скачивание/Раздачу';
diff --git a/library/language/sk/main.php b/library/language/sk/main.php
index d83441aec..f567f65fb 100644
--- a/library/language/sk/main.php
+++ b/library/language/sk/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Ďalší torrent s rovnakým info_hash už Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Odstrániť z tracker';
$lang['BT_UNREGISTERED'] = 'Torrent neregistrovaný';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['odpovedať', 'odpovede'];
$lang['DECLENSION']['TIMES'] = ['čas', 'časy'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['druhý', 'sekúnd'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL rýchlosť';
$lang['DL_DL_SPEED'] = 'DL rýchlosť';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Vzorec: Nahrané/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'zastavil';
diff --git a/library/language/sl/main.php b/library/language/sl/main.php
index 5d10fe2c9..1034fcf3c 100644
--- a/library/language/sl/main.php
+++ b/library/language/sl/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Drugi torrent z enakim info_hash že Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Odstrani iz tracker';
$lang['BT_UNREGISTERED'] = 'Torrent neregistrirane';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['odgovori', 'odgovori'];
$lang['DECLENSION']['TIMES'] = ['čas', 'krat'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['drugo', 'sekund'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL hitrost';
$lang['DL_DL_SPEED'] = 'DL hitrost';
$lang['DL_PORT'] = 'Vrata';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formula: Naložili/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'ustavi';
diff --git a/library/language/sq/main.php b/library/language/sq/main.php
index 053551a23..f44515007 100644
--- a/library/language/sq/main.php
+++ b/library/language/sq/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Një tjetër torrent me të njëjtën info_has
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Hiqni nga tracker';
$lang['BT_UNREGISTERED'] = 'Torrent paregjistruara';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['përgjigje', 'përgjigje'];
$lang['DECLENSION']['TIMES'] = ['kohë', 'kohët'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['i dytë', 'sekonda'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL shpejtësinë';
$lang['DL_DL_SPEED'] = 'DL shpejtësi';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formula: Uploaded/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'u ndal';
diff --git a/library/language/sr/main.php b/library/language/sr/main.php
index c7122c0af..884341250 100644
--- a/library/language/sr/main.php
+++ b/library/language/sr/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Други торент са истим info_h
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Уклоните из трацкер';
$lang['BT_UNREGISTERED'] = 'Торрент нерегистрованих';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['одговор', 'одговори'];
$lang['DECLENSION']['TIMES'] = ['време', 'пут'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['други', 'секунди'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'Дл';
$lang['DL_UL_SPEED'] = 'Брзина ст';
$lang['DL_DL_SPEED'] = 'Брзина дл';
$lang['DL_PORT'] = 'Лука';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Формула: Напуњен/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'престао';
diff --git a/library/language/sv/main.php b/library/language/sv/main.php
index a5017a50d..8b623daca 100644
--- a/library/language/sv/main.php
+++ b/library/language/sv/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'En annan torrent med samma info_hash redan Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Ta bort från tracker';
$lang['BT_UNREGISTERED'] = 'Torrent oregistrerade';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['svara', 'svar'];
$lang['DECLENSION']['TIMES'] = ['tid', 'gånger'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['andra', 'sekunder'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL hastighet';
$lang['DL_DL_SPEED'] = 'DL hastighet';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formel: Upp/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'slutat';
diff --git a/library/language/tg/main.php b/library/language/tg/main.php
index 9c4e305f3..5ebe58e3c 100644
--- a/library/language/tg/main.php
+++ b/library/language/tg/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'ҷӯйе дигар бо ҳамин info_hash
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Хориҷ аз Назоратчии';
$lang['BT_UNREGISTERED'] = 'ҷӯйе никоњи';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['ҷавоб', 'АКС'];
$lang['DECLENSION']['TIMES'] = ['замон', 'маротиба'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['дуюм', 'сония'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'суръати ул';
$lang['DL_DL_SPEED'] = 'суръати DL';
$lang['DL_PORT'] = 'бандаргоҳ';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Формула: Изҳори / TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'қатъ';
diff --git a/library/language/th/main.php b/library/language/th/main.php
index b29867b47..c97eba8db 100644
--- a/library/language/th/main.php
+++ b/library/language/th/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'อีกทอร์เรนต์กับ
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'ลบออกจากแทร็กเกอร์';
$lang['BT_UNREGISTERED'] = 'ทอร์เรนต์ไม่จดทะเบี';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['ตอบกลับ', 'การตอบกลับ'];
$lang['DECLENSION']['TIMES'] = ['เวลา', 'ครั้งแล้ว'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['ที่สอง', 'วินาที'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'ขนาด DL';
$lang['DL_UL_SPEED'] = 'UL ความเร็ว';
$lang['DL_DL_SPEED'] = 'DL ความเร็ว';
$lang['DL_PORT'] = 'พอร์ต';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'สูตร:อัพโหลด/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'หยุด';
diff --git a/library/language/tr/main.php b/library/language/tr/main.php
index 8a33e2413..e0e5a65d1 100644
--- a/library/language/tr/main.php
+++ b/library/language/tr/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Aynı info_hash ile başka bir torrent zaten <
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'İzleyiciden Kaldır';
$lang['BT_UNREGISTERED'] = 'Torrent kayıtsız';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1648,6 +1652,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['cevap', 'cevaplar'];
$lang['DECLENSION']['TIMES'] = ['zaman', 'kere'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['ikinci', 'saniye'],
@@ -1841,7 +1846,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL hızı';
$lang['DL_DL_SPEED'] = 'DL hızı';
$lang['DL_PORT'] = 'Bağlantı noktası';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formül: Yükledi/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'durdu';
diff --git a/library/language/uk/main.php b/library/language/uk/main.php
index 2c46f28a2..e9f9f30d9 100644
--- a/library/language/uk/main.php
+++ b/library/language/uk/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Інший торрент з таким же i
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Вилучити з трекера';
$lang['BT_UNREGISTERED'] = 'Торент незареєстрований';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[ПП]';
$lang['DECLENSION']['REPLIES'] = ['відповідь', 'відповіді'];
$lang['DECLENSION']['TIMES'] = ['раз', 'разів'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['секунда', 'секунд'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'Завантажено';
$lang['DL_UL_SPEED'] = 'Швидкість віддачі';
$lang['DL_DL_SPEED'] = 'Швидкість завантаження';
$lang['DL_PORT'] = 'Порт';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Формула: Віддано/Розмір роздачі';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'зупинено';
diff --git a/library/language/uz/main.php b/library/language/uz/main.php
index a93d18f5a..444f1d197 100644
--- a/library/language/uz/main.php
+++ b/library/language/uz/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Shu info_hash allaqachon regis
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'izdoshlari o\'chirish';
$lang['BT_UNREGISTERED'] = 'Ro\'yxatdan o\'tmagan torrent';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['javob', 'javoblar'];
$lang['DECLENSION']['TIMES'] = ['vaqt', 'marta'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['ikkinchi', 'soniya'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL tezligi';
$lang['DL_DL_SPEED'] = 'DL tezligi';
$lang['DL_PORT'] = 'port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Formula: Uploaded / TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'to\'xtadi';
diff --git a/library/language/vi/main.php b/library/language/vi/main.php
index 4e6e929a6..d4211a8d4 100644
--- a/library/language/vi/main.php
+++ b/library/language/vi/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = 'Một torrent với cùng một info_hash đã
$lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids';
$lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids';
$lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d';
+$lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash';
+$lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = 'Bỏ từ theo dõi';
$lang['BT_UNREGISTERED'] = 'Torrent không đăng ký';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['trả lời', 'câu trả lời'];
$lang['DECLENSION']['TIMES'] = ['thời gian', 'lần'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['thứ hai', 'giây'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL tốc độ';
$lang['DL_DL_SPEED'] = 'DL tốc độ';
$lang['DL_PORT'] = 'Port';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = 'Công Thức:/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = 'dừng lại';
diff --git a/library/language/zh/main.php b/library/language/zh/main.php
index 515e666d0..cdc3f10b9 100644
--- a/library/language/zh/main.php
+++ b/library/language/zh/main.php
@@ -1348,6 +1348,10 @@ $lang['BT_REG_FAIL_SAME_HASH'] = '另一个种子与同info_hash已经Torrent Merkle Root Reader ';
+$lang['BT_FLIST_CREATION_DATE'] = 'Creation date';
+$lang['BT_FLIST_FILE_PATH'] = 'Path (%s)';
$lang['BT_UNREG_FROM_TRACKER'] = '删除从跟踪器';
$lang['BT_UNREGISTERED'] = '未注册的洪流';
$lang['BT_UNREGISTERED_ALREADY'] = 'Torrent already unregistered';
@@ -1644,6 +1648,7 @@ $lang['SEND_PM_TXTB'] = '[PM]';
$lang['DECLENSION']['REPLIES'] = ['回复', '答复'];
$lang['DECLENSION']['TIMES'] = ['时间', '时间'];
+$lang['DECLENSION']['FILES'] = ['file', 'files'];
$lang['DELTA_TIME']['INTERVALS'] = [
'seconds' => ['第二', '几秒钟'],
@@ -1837,7 +1842,7 @@ $lang['DL_DL'] = 'DL';
$lang['DL_UL_SPEED'] = 'UL速度';
$lang['DL_DL_SPEED'] = 'DL速度';
$lang['DL_PORT'] = '口';
-$lang['DL_CLIENT'] = 'Client';
+$lang['DL_CLIENT'] = 'BitTorrent client';
$lang['DL_FORMULA'] = '公式:传/TorrentSize';
$lang['DL_ULR'] = 'ULR';
$lang['DL_STOPPED'] = '停止';
From 47da2bc515e7df480813d1098c320ef1863737c1 Mon Sep 17 00:00:00 2001
From: Roman Kelesidis
Date: Sun, 11 Aug 2024 14:59:06 +0700
Subject: [PATCH 6/9] Update CHANGELOG.md
---
CHANGELOG.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fc9b14fb4..790b67536 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,7 +15,7 @@
- Fixed `md5()` deprecated in PHP 8.4 [\#1561](https://github.com/torrentpier/torrentpier/pull/1561) ([belomaxorka](https://github.com/belomaxorka))
- Increased `USEREMAIL_MAX_LENGTH` [\#1566](https://github.com/torrentpier/torrentpier/pull/1566) ([belomaxorka](https://github.com/belomaxorka))
- Minor improvements [\#1570](https://github.com/torrentpier/torrentpier/pull/1570), [\#1571](https://github.com/torrentpier/torrentpier/pull/1571), [\#1575](https://github.com/torrentpier/torrentpier/pull/1575) ([belomaxorka](https://github.com/belomaxorka))
-- New Crowdin updates [\#1569](https://github.com/torrentpier/torrentpier/pull/1569), [\#1572](https://github.com/torrentpier/torrentpier/pull/1572), [\#1573](https://github.com/torrentpier/torrentpier/pull/1573), [\#1574](https://github.com/torrentpier/torrentpier/pull/1574) ([Exileum](https://github.com/Exileum))
+- New Crowdin updates [\#1569](https://github.com/torrentpier/torrentpier/pull/1569), [\#1572](https://github.com/torrentpier/torrentpier/pull/1572), [\#1573](https://github.com/torrentpier/torrentpier/pull/1573), [\#1574](https://github.com/torrentpier/torrentpier/pull/1574), [\#1588](https://github.com/torrentpier/torrentpier/pull/1588) ([Exileum](https://github.com/Exileum))
## [v2.4.4](https://github.com/torrentpier/torrentpier/tree/v2.4.4) (2024-07-22)
[Full Changelog](https://github.com/torrentpier/torrentpier/compare/v2.4.3...v2.4.4)
From bc45b9d38630f88f866c2e558fba028c360757ef Mon Sep 17 00:00:00 2001
From: Roman Kelesidis
Date: Sun, 11 Aug 2024 15:26:28 +0700
Subject: [PATCH 7/9] Update composer.json
---
composer.json | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/composer.json b/composer.json
index 41c8312aa..8aae82563 100644
--- a/composer.json
+++ b/composer.json
@@ -17,6 +17,15 @@
"homepage": "https://github.com/Exileum",
"role": "Developer"
},
+ {
+ "name": "Diolektor",
+ "role": "Developer"
+ },
+ {
+ "name": "PheRum",
+ "homepage": "https://github.com/PheRum",
+ "role": "Developer"
+ },
{
"name": "belomaxorka",
"email": "roman25052006.kelesh@gmail.com",
@@ -62,7 +71,7 @@
"vlucas/phpdotenv": "^5.5"
},
"require-dev": {
- "symfony/var-dumper": "^6.3"
+ "symfony/var-dumper": "^6.4"
},
"autoload": {
"psr-4": {
From 7c31bc50e0c1724c1b4ea1659118040989b137b0 Mon Sep 17 00:00:00 2001
From: Roman Kelesidis
Date: Sun, 11 Aug 2024 15:32:33 +0700
Subject: [PATCH 8/9] Update composer.json
---
composer.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/composer.json b/composer.json
index 8aae82563..436d07190 100644
--- a/composer.json
+++ b/composer.json
@@ -19,6 +19,7 @@
},
{
"name": "Diolektor",
+ "homepage": "https://github.com/diolektor",
"role": "Developer"
},
{
From df9922870cb6e1546a2a11547b3fa9a41e59d73b Mon Sep 17 00:00:00 2001
From: Roman Kelesidis
Date: Sun, 11 Aug 2024 16:07:05 +0700
Subject: [PATCH 9/9] Minor improvements (#1589)
* Minor improvements
* Update CHANGELOG.md
* Update README.md
---
CHANGELOG.md | 2 +-
README.md | 11 ++++++-----
common.php | 23 -----------------------
library/defines.php | 15 ---------------
src/Helpers/IsHelper.php | 11 -----------
5 files changed, 7 insertions(+), 55 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 790b67536..0c59986fd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,7 +14,7 @@
- Demo mode: Save user language in cookies [\#1584](https://github.com/torrentpier/torrentpier/pull/1584) ([belomaxorka](https://github.com/belomaxorka))
- Fixed `md5()` deprecated in PHP 8.4 [\#1561](https://github.com/torrentpier/torrentpier/pull/1561) ([belomaxorka](https://github.com/belomaxorka))
- Increased `USEREMAIL_MAX_LENGTH` [\#1566](https://github.com/torrentpier/torrentpier/pull/1566) ([belomaxorka](https://github.com/belomaxorka))
-- Minor improvements [\#1570](https://github.com/torrentpier/torrentpier/pull/1570), [\#1571](https://github.com/torrentpier/torrentpier/pull/1571), [\#1575](https://github.com/torrentpier/torrentpier/pull/1575) ([belomaxorka](https://github.com/belomaxorka))
+- Minor improvements [\#1570](https://github.com/torrentpier/torrentpier/pull/1570), [\#1571](https://github.com/torrentpier/torrentpier/pull/1571), [\#1575](https://github.com/torrentpier/torrentpier/pull/1575), [\#1589](https://github.com/torrentpier/torrentpier/pull/1589) ([belomaxorka](https://github.com/belomaxorka))
- New Crowdin updates [\#1569](https://github.com/torrentpier/torrentpier/pull/1569), [\#1572](https://github.com/torrentpier/torrentpier/pull/1572), [\#1573](https://github.com/torrentpier/torrentpier/pull/1573), [\#1574](https://github.com/torrentpier/torrentpier/pull/1574), [\#1588](https://github.com/torrentpier/torrentpier/pull/1588) ([Exileum](https://github.com/Exileum))
## [v2.4.4](https://github.com/torrentpier/torrentpier/tree/v2.4.4) (2024-07-22)
diff --git a/README.md b/README.md
index 54b8656c8..1a1e4e88f 100644
--- a/README.md
+++ b/README.md
@@ -73,14 +73,15 @@ For installation, you need to follow a few simple steps.
1. Install [Composer](https://getcomposer.org/)
2. Run `composer create-project torrentpier/torrentpier`
-3. After run `composer install` on the project directory
-4. Create database and import dump located at `install/sql/mysql.sql`
-5. Edit database configuration settings in the environment (`.env.example`, after rename to `.env`)
-6. Provide write permissions to the specified folders:
+3. [Check our system requirements](#-requirements)
+4. After run `composer install` on the project directory
+5. Create database and import dump located at `install/sql/mysql.sql`
+6. Edit database configuration settings in the environment (`.env.example`), after rename to `.env`
+7. Provide write permissions to the specified folders:
* `data/avatars`, `data/uploads`, `data/uploads/thumbs`
* `internal_data/atom`, `internal_data/cache`, `internal_data/log`, `internal_data/triggers`
* `sitemap`
-7. Voila! ✨
+8. Voila! ✨
> [!IMPORTANT]
> The specific settings depend on the server you are using, but in general case we recommend chmod **0755** for folders, and chmod **0644** for files in them.
diff --git a/common.php b/common.php
index b50e65ea8..47c39eb68 100644
--- a/common.php
+++ b/common.php
@@ -143,29 +143,6 @@ switch ($bb_cfg['datastore_type']) {
$datastore = new TorrentPier\Legacy\Datastore\File($bb_cfg['cache']['db_dir'] . 'datastore/', $bb_cfg['cache']['prefix']);
}
-/**
- * Check system requirements
- */
-if (CHECK_REQUIREMENTS['status'] && !CACHE('bb_cache')->get('system_req')) {
- // [1] Check PHP Version
- if (!\TorrentPier\Helpers\IsHelper::isPHP(CHECK_REQUIREMENTS['php_min_version'])) {
- die("TorrentPier requires PHP version " . CHECK_REQUIREMENTS['php_min_version'] . "+ Your PHP version " . PHP_VERSION);
- }
-
- // [2] Check installed PHP Extensions on server
- $data = [];
- foreach (CHECK_REQUIREMENTS['ext_list'] as $ext) {
- if (!extension_loaded($ext)) {
- $data[] = '' . $ext . '
';
- }
- }
- if (!empty($data)) {
- die(sprintf("TorrentPier requires %s extension(s) installed on server", implode(', ', $data)));
- }
-
- CACHE('bb_cache')->set('system_req', true);
-}
-
// Functions
function utime()
{
diff --git a/library/defines.php b/library/defines.php
index 7f4bd47ad..48c2d18ca 100644
--- a/library/defines.php
+++ b/library/defines.php
@@ -35,21 +35,6 @@ define('UPDATER_FILE', INT_DATA_DIR . '/updater.json');
define('API_IP_URL', 'https://freeipapi.com/api/json/');
define('CHECKSUMS_FILE', INT_DATA_DIR . '/checksums.md5');
define('RESTORE_CORRUPT_CONFIRM_FILE', INT_DATA_DIR . '/rescorrupt.integrity');
-define('CHECK_REQUIREMENTS', [
- 'status' => true,
- 'php_min_version' => '8.1.0',
- 'ext_list' => [
- 'json',
- 'curl',
- 'mysqli',
- 'bcmath',
- 'mbstring',
- 'intl',
- 'xml',
- 'xmlwriter',
- 'zip'
- ],
-]);
// Templates
define('ADMIN_TPL_DIR', TEMPLATES_DIR . '/admin/');
diff --git a/src/Helpers/IsHelper.php b/src/Helpers/IsHelper.php
index ec10f387f..87cd3ecb8 100644
--- a/src/Helpers/IsHelper.php
+++ b/src/Helpers/IsHelper.php
@@ -15,17 +15,6 @@ namespace TorrentPier\Helpers;
*/
class IsHelper
{
- /**
- * Determines if the current version of PHP is equal to or greater than the supplied value
- *
- * @param string $version
- * @return bool TRUE if the current version is $version or higher
- */
- public static function isPHP(string $version): bool
- {
- return version_compare(PHP_VERSION, $version, '>=');
- }
-
/**
* Return true if server have SSL
*