Minor improvements (#1730)

* Minor improvements

* Updated

* Updated

* Update common.php

* Update common.php

* Updated

* Revert "Updated"

This reverts commit 204d196ba5.

* Revert "Update common.php"

This reverts commit eb24dc1c85.

* Updated

* Updated

* Update build_check_updates.php

* Update build_check_updates.php

* Update common.php

* Update build_check_updates.php

* Updated

* Update CHANGELOG.md
This commit is contained in:
Roman Kelesidis 2025-01-01 20:52:34 +07:00 committed by GitHub
commit 768837608b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 119 additions and 71 deletions

View file

@ -16,7 +16,7 @@
- Fixed searching by username in `memberlist.php` [\#1721](https://github.com/torrentpier/torrentpier/pull/1721) ([belomaxorka](https://github.com/belomaxorka)) - Fixed searching by username in `memberlist.php` [\#1721](https://github.com/torrentpier/torrentpier/pull/1721) ([belomaxorka](https://github.com/belomaxorka))
- Set `cursor: pointer;` for buttons, inputs (buttons) [\#1710](https://github.com/torrentpier/torrentpier/pull/1710), [\#1711](https://github.com/torrentpier/torrentpier/pull/1711) ([belomaxorka](https://github.com/belomaxorka)) - Set `cursor: pointer;` for buttons, inputs (buttons) [\#1710](https://github.com/torrentpier/torrentpier/pull/1710), [\#1711](https://github.com/torrentpier/torrentpier/pull/1711) ([belomaxorka](https://github.com/belomaxorka))
- Some updater improvements [\#1725](https://github.com/torrentpier/torrentpier/pull/1725) ([belomaxorka](https://github.com/belomaxorka)) - Some updater improvements [\#1725](https://github.com/torrentpier/torrentpier/pull/1725) ([belomaxorka](https://github.com/belomaxorka))
- Minor improvements [\#1705](https://github.com/torrentpier/torrentpier/pull/1705), [\#1713](https://github.com/torrentpier/torrentpier/pull/1713), [\#1715](https://github.com/torrentpier/torrentpier/pull/1715), [\#1717](https://github.com/torrentpier/torrentpier/pull/1717), [\#1719](https://github.com/torrentpier/torrentpier/pull/1719), [\#1720](https://github.com/torrentpier/torrentpier/pull/1720), [\#1728](https://github.com/torrentpier/torrentpier/pull/1728) ([belomaxorka](https://github.com/belomaxorka)) - Minor improvements [\#1705](https://github.com/torrentpier/torrentpier/pull/1705), [\#1713](https://github.com/torrentpier/torrentpier/pull/1713), [\#1715](https://github.com/torrentpier/torrentpier/pull/1715), [\#1717](https://github.com/torrentpier/torrentpier/pull/1717), [\#1719](https://github.com/torrentpier/torrentpier/pull/1719), [\#1720](https://github.com/torrentpier/torrentpier/pull/1720), [\#1728](https://github.com/torrentpier/torrentpier/pull/1728), [\#1730](https://github.com/torrentpier/torrentpier/pull/1730) ([belomaxorka](https://github.com/belomaxorka))
- Updated deps [\#1723](https://github.com/torrentpier/torrentpier/pull/1723) ([belomaxorka](https://github.com/belomaxorka)) - Updated deps [\#1723](https://github.com/torrentpier/torrentpier/pull/1723) ([belomaxorka](https://github.com/belomaxorka))
- New Crowdin updates [\#1704](https://github.com/torrentpier/torrentpier/pull/1704), [\#1706](https://github.com/torrentpier/torrentpier/pull/1706), [\#1714](https://github.com/torrentpier/torrentpier/pull/1714), [\#1716](https://github.com/torrentpier/torrentpier/pull/1716) ([Exileum](https://github.com/Exileum)) - New Crowdin updates [\#1704](https://github.com/torrentpier/torrentpier/pull/1704), [\#1706](https://github.com/torrentpier/torrentpier/pull/1706), [\#1714](https://github.com/torrentpier/torrentpier/pull/1714), [\#1716](https://github.com/torrentpier/torrentpier/pull/1716) ([Exileum](https://github.com/Exileum))

View file

@ -87,9 +87,10 @@ if (is_file(BB_PATH . '/library/config.local.php')) {
} }
/** /**
* Error reporting * Initialize debug
*/ */
if (env('APP_ENV') === 'local') { define('APP_ENV', env('APP_ENV', 'production'));
if (APP_ENV === 'local') {
define('DBG_USER', true); // forced debug define('DBG_USER', true); // forced debug
} else { } else {
define('DBG_USER', isset($_COOKIE[COOKIE_DBG])); define('DBG_USER', isset($_COOKIE[COOKIE_DBG]));
@ -347,26 +348,12 @@ function sys(string $param)
} }
} }
/**
* Returns version code
*
* @param string $version
* @return int
*/
function version_code(string $version): int
{
return (int)trim(str_replace(['.', 'v'], '', $version));
}
/** /**
* Some shared defines * Some shared defines
*/ */
// Initialize demo mode // Initialize demo mode
define('IN_DEMO_MODE', env('APP_DEMO_MODE', false)); define('IN_DEMO_MODE', env('APP_DEMO_MODE', false));
// Version code
define('VERSION_CODE', version_code($bb_cfg['tp_version']));
// Ratio status // Ratio status
define('RATIO_ENABLED', TR_RATING_LIMITS && MIN_DL_FOR_RATIO > 0); define('RATIO_ENABLED', TR_RATING_LIMITS && MIN_DL_FOR_RATIO > 0);

View file

@ -55,6 +55,7 @@
"claviska/simpleimage": "^4.0", "claviska/simpleimage": "^4.0",
"egulias/email-validator": "^4.0.1", "egulias/email-validator": "^4.0.1",
"filp/whoops": "^2.15", "filp/whoops": "^2.15",
"z4kn4fein/php-semver": "^v3.0.0",
"gigablah/sphinxphp": "2.0.8", "gigablah/sphinxphp": "2.0.8",
"google/recaptcha": "^1.3", "google/recaptcha": "^1.3",
"jacklul/monolog-telegram": "^3.1", "jacklul/monolog-telegram": "^3.1",
@ -63,7 +64,7 @@
"php-curl-class/php-curl-class": "^11.0.0", "php-curl-class/php-curl-class": "^11.0.0",
"league/flysystem": "^3.28", "league/flysystem": "^3.28",
"longman/ip-tools": "1.2.1", "longman/ip-tools": "1.2.1",
"matthiasmullie/scrapbook": "dev-master", "matthiasmullie/scrapbook": "^1.5.4",
"monolog/monolog": "^3.4", "monolog/monolog": "^3.4",
"samdark/sitemap": "2.4.1", "samdark/sitemap": "2.4.1",
"symfony/finder": "^6.4", "symfony/finder": "^6.4",

122
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "5cd54867fb93869122d1d00ee6f2764b", "content-hash": "a3dd6c29793f928936aec555bba8ca5c",
"packages": [ "packages": [
{ {
"name": "arokettu/bencode", "name": "arokettu/bencode",
@ -1787,16 +1787,16 @@
}, },
{ {
"name": "matthiasmullie/scrapbook", "name": "matthiasmullie/scrapbook",
"version": "dev-master", "version": "1.5.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/matthiasmullie/scrapbook.git", "url": "https://github.com/matthiasmullie/scrapbook.git",
"reference": "510129d83dd21b29d0fde6886a7a08d435d1ae65" "reference": "6ca64d54d7106deffbb98cb9c6a6f5fdb13ce1f1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/matthiasmullie/scrapbook/zipball/510129d83dd21b29d0fde6886a7a08d435d1ae65", "url": "https://api.github.com/repos/matthiasmullie/scrapbook/zipball/6ca64d54d7106deffbb98cb9c6a6f5fdb13ce1f1",
"reference": "510129d83dd21b29d0fde6886a7a08d435d1ae65", "reference": "6ca64d54d7106deffbb98cb9c6a6f5fdb13ce1f1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1822,7 +1822,6 @@
"ext-redis": ">=2.2.0||0.0.0.0", "ext-redis": ">=2.2.0||0.0.0.0",
"league/flysystem": ">=1.0" "league/flysystem": ">=1.0"
}, },
"default-branch": true,
"type": "library", "type": "library",
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@ -1875,7 +1874,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/matthiasmullie/scrapbook/issues", "issues": "https://github.com/matthiasmullie/scrapbook/issues",
"source": "https://github.com/matthiasmullie/scrapbook/tree/master" "source": "https://github.com/matthiasmullie/scrapbook/tree/1.5.4"
}, },
"funding": [ "funding": [
{ {
@ -1883,7 +1882,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-05-30T09:05:39+00:00" "time": "2024-12-20T11:47:12+00:00"
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
@ -2809,12 +2808,12 @@
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"thanks": {
"url": "https://github.com/symfony/contracts",
"name": "symfony/contracts"
},
"branch-alias": { "branch-alias": {
"dev-main": "3.5-dev" "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
} }
}, },
"autoload": { "autoload": {
@ -2957,12 +2956,12 @@
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"thanks": {
"url": "https://github.com/symfony/contracts",
"name": "symfony/contracts"
},
"branch-alias": { "branch-alias": {
"dev-main": "3.5-dev" "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
} }
}, },
"autoload": { "autoload": {
@ -3081,16 +3080,16 @@
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v6.4.13", "version": "v6.4.17",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958" "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958", "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7",
"reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958", "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3125,7 +3124,7 @@
"description": "Finds files and directories via an intuitive fluent interface", "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/finder/tree/v6.4.13" "source": "https://github.com/symfony/finder/tree/v6.4.17"
}, },
"funding": [ "funding": [
{ {
@ -3141,7 +3140,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-10-01T08:30:56+00:00" "time": "2024-12-29T13:51:37+00:00"
}, },
{ {
"name": "symfony/mailer", "name": "symfony/mailer",
@ -3225,16 +3224,16 @@
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
"version": "v6.4.13", "version": "v6.4.17",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mime.git", "url": "https://github.com/symfony/mime.git",
"reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855" "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/1de1cf14d99b12c7ebbb850491ec6ae3ed468855", "url": "https://api.github.com/repos/symfony/mime/zipball/ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232",
"reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855", "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3290,7 +3289,7 @@
"mime-type" "mime-type"
], ],
"support": { "support": {
"source": "https://github.com/symfony/mime/tree/v6.4.13" "source": "https://github.com/symfony/mime/tree/v6.4.17"
}, },
"funding": [ "funding": [
{ {
@ -3306,7 +3305,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-10-25T15:07:50+00:00" "time": "2024-12-02T11:09:41+00:00"
}, },
{ {
"name": "symfony/polyfill", "name": "symfony/polyfill",
@ -3447,12 +3446,12 @@
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"thanks": {
"url": "https://github.com/symfony/contracts",
"name": "symfony/contracts"
},
"branch-alias": { "branch-alias": {
"dev-main": "3.5-dev" "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
} }
}, },
"autoload": { "autoload": {
@ -3589,6 +3588,60 @@
} }
], ],
"time": "2024-07-20T21:52:34+00:00" "time": "2024-07-20T21:52:34+00:00"
},
{
"name": "z4kn4fein/php-semver",
"version": "v3.0.0",
"source": {
"type": "git",
"url": "https://github.com/z4kn4fein/php-semver.git",
"reference": "049a1d81e92235c8b3c9ab30a96fcbaa929a266d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/z4kn4fein/php-semver/zipball/049a1d81e92235c8b3c9ab30a96fcbaa929a266d",
"reference": "049a1d81e92235c8b3c9ab30a96fcbaa929a266d",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.0",
"phpstan/phpstan": "^1.0",
"phpunit/phpunit": "^10"
},
"type": "library",
"autoload": {
"psr-4": {
"z4kn4fein\\SemVer\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Peter Csajtai",
"email": "peter.csajtai@outlook.com"
}
],
"description": "Semantic Versioning library for PHP. It implements the full semantic version 2.0.0 specification and provides ability to parse, compare, and increment semantic versions along with validation against constraints.",
"homepage": "https://github.com/z4kn4fein/php-semver",
"keywords": [
"comparison",
"semantic",
"semver",
"validation",
"version",
"versioning"
],
"support": {
"issues": "https://github.com/z4kn4fein/php-semver/issues",
"source": "https://github.com/z4kn4fein/php-semver/tree/v3.0.0"
},
"time": "2024-04-01T16:17:27+00:00"
} }
], ],
"packages-dev": [ "packages-dev": [
@ -3682,14 +3735,13 @@
"minimum-stability": "dev", "minimum-stability": "dev",
"stability-flags": { "stability-flags": {
"arokettu/monsterid": 20, "arokettu/monsterid": 20,
"gemorroj/m3u-parser": 20, "gemorroj/m3u-parser": 20
"matthiasmullie/scrapbook": 20
}, },
"prefer-stable": true, "prefer-stable": true,
"prefer-lowest": false, "prefer-lowest": false,
"platform": { "platform": {
"php": "^8.1 | ^8.2 | ^8.3 | ^8.4" "php": "^8.1 | ^8.2 | ^8.3 | ^8.4"
}, },
"platform-dev": [], "platform-dev": {},
"plugin-api-version": "2.6.0" "plugin-api-version": "2.6.0"
} }

View file

@ -35,7 +35,7 @@ if (!$info_hash = (string)$this->request['info_hash'] or !ctype_xdigit($info_has
$this->ajax_die("Invalid info_hash: $info_hash"); $this->ajax_die("Invalid info_hash: $info_hash");
} }
$isAudio = !empty($this->request['is_audio']); $isAudio = isset($this->request['is_audio']) && $this->request['is_audio'];
// Get ffprobe info from TorrServer // Get ffprobe info from TorrServer
$ffpInfo = (new \TorrentPier\TorrServerAPI())->getFfpInfo($info_hash, $file_index, $attach_id); $ffpInfo = (new \TorrentPier\TorrServerAPI())->getFfpInfo($info_hash, $file_index, $attach_id);

View file

@ -22,28 +22,22 @@ $data = [];
$updaterDownloader = new \TorrentPier\Updater(); $updaterDownloader = new \TorrentPier\Updater();
$updaterDownloader = $updaterDownloader->getLastVersion($bb_cfg['tp_updater_settings']['allow_pre_releases']); $updaterDownloader = $updaterDownloader->getLastVersion($bb_cfg['tp_updater_settings']['allow_pre_releases']);
$getVersion = $updaterDownloader['tag_name']; $getVersion = versionFormatter($updaterDownloader['tag_name']);
$versionCodeActual = version_code($getVersion); $currentVersion = versionFormatter($bb_cfg['tp_version']);
// Has update! // Has update!
if (VERSION_CODE < $versionCodeActual) { if (\z4kn4fein\SemVer\Version::greaterThan($getVersion, $currentVersion)) {
$latestBuildFileLink = $updaterDownloader['assets'][0]['browser_download_url']; $latestBuildFileLink = $updaterDownloader['assets'][0]['browser_download_url'];
// Check updater file // Check updater file
$updater_file = readUpdaterFile(); $updaterFile = readUpdaterFile();
$updater_need_replaced = !empty($updater_file) && ($updater_file['latest_version']['short_code'] < $versionCodeActual); $updaterFileNeedReplaced = !empty($updaterFile) && \z4kn4fein\SemVer\Version::greaterThan($getVersion, $updaterFile['latest_version']);
// Save current version & latest available // Save current version & latest available
if (!is_file(UPDATER_FILE) || $updater_need_replaced) { if (!is_file(UPDATER_FILE) || $updaterFileNeedReplaced) {
file_write(json_encode([ file_write(json_encode([
'previous_version' => [ 'previous_version' => $currentVersion,
'short_code' => VERSION_CODE, 'latest_version' => $getVersion
'version' => $bb_cfg['tp_version']
],
'latest_version' => [
'short_code' => $versionCodeActual,
'version' => $getVersion
]
]), UPDATER_FILE, replace_content: true); ]), UPDATER_FILE, replace_content: true);
} }

View file

@ -792,7 +792,7 @@ function generate_user_info($row, bool $have_auth = IS_ADMIN): array
{ {
global $userdata, $lang, $images, $bb_cfg; global $userdata, $lang, $images, $bb_cfg;
$from = !empty($row['user_from']) ? render_flag($row['user_from']) : $lang['NOSELECT']; $from = !empty($row['user_from']) ? render_flag($row['user_from'], false) : $lang['NOSELECT'];
$joined = bb_date($row['user_regdate'], 'Y-m-d H:i', false); $joined = bb_date($row['user_regdate'], 'Y-m-d H:i', false);
$user_time = !empty($row['user_time']) ? sprintf('%s <span class="signature">(%s)</span>', bb_date($row['user_time']), delta_time($row['user_time'])) : $lang['NOSELECT']; $user_time = !empty($row['user_time']) ? sprintf('%s <span class="signature">(%s)</span>', bb_date($row['user_time']), delta_time($row['user_time'])) : $lang['NOSELECT'];
$posts = '<a href="search.php?search_author=1&amp;uid=' . $row['user_id'] . '" target="_blank">' . $row['user_posts'] ?: 0 . '</a>'; $posts = '<a href="search.php?search_author=1&amp;uid=' . $row['user_id'] . '" target="_blank">' . $row['user_posts'] ?: 0 . '</a>';
@ -2157,6 +2157,20 @@ function readUpdaterFile(): array|bool
return json_decode(file_get_contents(UPDATER_FILE), true); return json_decode(file_get_contents(UPDATER_FILE), true);
} }
/**
* Version formatter
*
* @param string $version
* @return string
*/
function versionFormatter(string $version): string
{
$version = trim($version);
$version = mb_strtolower($version, 'UTF-8');
return str_replace('v', '', $version);
}
/** /**
* IP Geolocation API * IP Geolocation API
* *

View file

@ -90,7 +90,7 @@ foreach ($m3uData as $entry) {
'FILE_INDEX' => $urlParams['index'], 'FILE_INDEX' => $urlParams['index'],
'ROW_CLASS' => $rowClass, 'ROW_CLASS' => $rowClass,
'IS_VALID' => in_array($getExtension, array_merge($validFormats['audio'], $validFormats['video'])), 'IS_VALID' => in_array($getExtension, array_merge($validFormats['audio'], $validFormats['video'])),
'IS_AUDIO' => in_array($getExtension, $validFormats['audio']), 'IS_AUDIO' => (int)in_array($getExtension, $validFormats['audio']),
'STREAM_LINK' => $streamLink, 'STREAM_LINK' => $streamLink,
'M3U_DL_LINK' => DL_URL . $row['attach_id'] . '&m3u=1', 'M3U_DL_LINK' => DL_URL . $row['attach_id'] . '&m3u=1',
'TITLE' => $title, 'TITLE' => $title,

View file

@ -39,7 +39,7 @@
<td width="40%"><b>{m3ulist.TITLE}</b> <td width="40%"><b>{m3ulist.TITLE}</b>
<div id="ffprobe_{m3ulist.FILE_INDEX}"> <div id="ffprobe_{m3ulist.FILE_INDEX}">
<hr/> <hr/>
<input onclick="ajax.ffprobe_info({m3ulist.FILE_INDEX}, '{m3ulist.IS_AUDIO}');" type="button" value="{L_SHOW_MORE_INFORMATION_FILE}"> <input onclick="ajax.ffprobe_info({m3ulist.FILE_INDEX}, {m3ulist.IS_AUDIO});" type="button" value="{L_SHOW_MORE_INFORMATION_FILE}">
</div> </div>
</td> </td>
<td> <td>