mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-14 12:30:49 +08:00
add configuration: torrent.approval_status_none_visible
This commit is contained in:
@@ -33,7 +33,7 @@
|
|||||||
安装 docker。
|
安装 docker。
|
||||||
其中 DOMAIN 是你要使用的域名,先做好解析。 没有域名使用 IP 亦可。
|
其中 DOMAIN 是你要使用的域名,先做好解析。 没有域名使用 IP 亦可。
|
||||||
端口按需要指定,如果本地 80 端口已经使用,请更换,保证端口对外开放。
|
端口按需要指定,如果本地 80 端口已经使用,请更换,保证端口对外开放。
|
||||||
第2步创建 .env 选择正确的时区 TIMEZONE,其他默认即可。
|
第 2 步创建 .env 选择正确的时区 TIMEZONE,其他默认即可。
|
||||||
```
|
```
|
||||||
docker pull xiaomlove/nexusphp:latest
|
docker pull xiaomlove/nexusphp:latest
|
||||||
docker run --name my-nexusphp -e DOMAIN=xxx.com -p 80:80 xiaomlove/nexusphp:latest
|
docker run --name my-nexusphp -e DOMAIN=xxx.com -p 80:80 xiaomlove/nexusphp:latest
|
||||||
@@ -46,8 +46,6 @@ docker run --name my-nexusphp -e DOMAIN=xxx.com -p 80:80 xiaomlove/nexusphp:late
|
|||||||
QQ群: [764452568](https://jq.qq.com/?_wv=1027&k=IbltZcIx)
|
QQ群: [764452568](https://jq.qq.com/?_wv=1027&k=IbltZcIx)
|
||||||
Telegram: [https://t.me/nexusphp](https://t.me/nexusphp)
|
Telegram: [https://t.me/nexusphp](https://t.me/nexusphp)
|
||||||
B站: [xiaomlove](https://space.bilibili.com/1319303059)
|
B站: [xiaomlove](https://space.bilibili.com/1319303059)
|
||||||
微信公众号:
|
|
||||||

|
|
||||||
|
|
||||||
## Project supported by JetBrains
|
## Project supported by JetBrains
|
||||||
Many thanks to Jetbrains for kindly providing a license for me to work on this and other open-source projects.
|
Many thanks to Jetbrains for kindly providing a license for me to work on this and other open-source projects.
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ class NexusUpdate extends Command
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $signature = 'nexus:update';
|
protected $signature = 'nexus:update {--tag=} {--keep_tmp}';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The console command description.
|
* The console command description.
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $description = 'Update nexusphp after code updated, remember run `composer update` first.';
|
protected $description = 'Update nexusphp after code updated, remember run `composer update` first. Options: --tag=, --keep_tmp';
|
||||||
|
|
||||||
private $update;
|
private $update;
|
||||||
|
|
||||||
@@ -43,6 +43,17 @@ class NexusUpdate extends Command
|
|||||||
{
|
{
|
||||||
define('WITH_LARAVEL', true);
|
define('WITH_LARAVEL', true);
|
||||||
require ROOT_PATH . 'nexus/Database/helpers.php';
|
require ROOT_PATH . 'nexus/Database/helpers.php';
|
||||||
|
$tag = $this->option('tag');
|
||||||
|
$keepTmp = $this->option('keep_tmp');
|
||||||
|
if ($tag !== null) {
|
||||||
|
if ($tag === 'dev') {
|
||||||
|
$url = "https://github.com/xiaomlove/nexusphp/archive/refs/heads/php8.zip";
|
||||||
|
} else {
|
||||||
|
$url = "https://api.github.com/repos/xiaomlove/nexusphp/tarball/v$tag";
|
||||||
|
}
|
||||||
|
$this->doLog("Specific tag: '$tag', download from '$url' and extra code...");
|
||||||
|
$tmpPath = $this->update->downAndExtractCode($url);
|
||||||
|
}
|
||||||
//Step 1
|
//Step 1
|
||||||
$step = $this->update->currentStep();
|
$step = $this->update->currentStep();
|
||||||
$log = sprintf('Step %s, %s...', $step, $this->update->getStepName($step));
|
$log = sprintf('Step %s, %s...', $step, $this->update->getStepName($step));
|
||||||
@@ -108,6 +119,15 @@ class NexusUpdate extends Command
|
|||||||
|
|
||||||
$this->doLog("All done!");
|
$this->doLog("All done!");
|
||||||
|
|
||||||
|
if (isset($tmpPath)) {
|
||||||
|
if (!$keepTmp) {
|
||||||
|
$this->doLog("Delete tmp files in: $tmpPath");
|
||||||
|
$this->update->executeCommand("rm -rf " . rtrim($tmpPath, '/'));
|
||||||
|
} else {
|
||||||
|
$this->doLog("Keep tmp files in: $tmpPath");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,8 +78,13 @@ class Test extends Command
|
|||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
$r = Carbon::parse(null);
|
$a = 2;
|
||||||
dd($r);
|
$b = 2;
|
||||||
|
if ($a != 1 && $b == 2) {
|
||||||
|
echo "OK";
|
||||||
|
} else {
|
||||||
|
echo 'Bad';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -533,5 +533,36 @@ class TorrentRepository extends BaseRepository
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function renderApprovalStatus($approvalStatus, $show = null): string
|
||||||
|
{
|
||||||
|
if ($show === null) {
|
||||||
|
$show = $this->shouldShowApprovalStatusIcon($approvalStatus);
|
||||||
|
}
|
||||||
|
if ($show) {
|
||||||
|
return sprintf(
|
||||||
|
'<span style="margin-left: 6px" title="%s">%s</span>',
|
||||||
|
nexus_trans("torrent.approval.status_text.$approvalStatus"),
|
||||||
|
\App\Models\Torrent::$approvalStatus[$approvalStatus]['icon']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function shouldShowApprovalStatusIcon($approvalStatus): bool
|
||||||
|
{
|
||||||
|
if (get_setting('torrent.approval_status_icon_enabled') == 'yes') {
|
||||||
|
//启用审核状态图标,肯定显示
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
$approvalStatus != \App\Models\Torrent::APPROVAL_STATUS_ALLOW
|
||||||
|
&& get_setting('torrent.approval_status_none_visible') == 'no'
|
||||||
|
) {
|
||||||
|
//不启用审核状态图标,尽量不显示。在种子不是审核通过状态,而审核不通过又不能被用户看到时,显示
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -382,8 +382,13 @@ class TrackerRepository extends BaseRepository
|
|||||||
throw new TrackerException('Torrent not registered with this tracker.');
|
throw new TrackerException('Torrent not registered with this tracker.');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($torrent->banned == 'yes' && $user->class < Setting::get('authority.seebanned')) {
|
if ($user->class < Setting::get('authority.seebanned')) {
|
||||||
throw new TrackerException("torrent banned");
|
if ($torrent->banned == 'yes') {
|
||||||
|
throw new TrackerException("torrent banned");
|
||||||
|
}
|
||||||
|
if ($torrent->approval_status != Torrent::APPROVAL_STATUS_ALLOW && Setting::get('torrent.approval_status_none_visible') == 'no') {
|
||||||
|
throw new TrackerException("torrent review not approved");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $torrent;
|
return $torrent;
|
||||||
}
|
}
|
||||||
@@ -1066,7 +1071,7 @@ class TrackerRepository extends BaseRepository
|
|||||||
{
|
{
|
||||||
$cacheKey = __METHOD__ . bin2hex($infoHash);
|
$cacheKey = __METHOD__ . bin2hex($infoHash);
|
||||||
return Cache::remember($cacheKey, 60, function () use ($infoHash, $cacheKey) {
|
return Cache::remember($cacheKey, 60, function () use ($infoHash, $cacheKey) {
|
||||||
$fieldRaw = 'id, owner, sp_state, seeders, leechers, added, banned, hr, visible, last_action, times_completed';
|
$fieldRaw = 'id, owner, sp_state, seeders, leechers, added, banned, hr, visible, last_action, times_completed, approval_status';
|
||||||
$torrent = Torrent::query()->where('info_hash', $infoHash)->selectRaw($fieldRaw)->first();
|
$torrent = Torrent::query()->where('info_hash', $infoHash)->selectRaw($fieldRaw)->first();
|
||||||
do_log("[getTorrentByInfoHash] cache miss [$cacheKey], from database, and get: " . ($torrent->id ?? ''));
|
do_log("[getTorrentByInfoHash] cache miss [$cacheKey], from database, and get: " . ($torrent->id ?? ''));
|
||||||
return $torrent;
|
return $torrent;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
defined('VERSION_NUMBER') || define('VERSION_NUMBER', '1.7.17');
|
defined('VERSION_NUMBER') || define('VERSION_NUMBER', '1.7.17');
|
||||||
defined('RELEASE_DATE') || define('RELEASE_DATE', '2022-06-23');
|
defined('RELEASE_DATE') || define('RELEASE_DATE', '2022-06-24');
|
||||||
defined('IN_TRACKER') || define('IN_TRACKER', true);
|
defined('IN_TRACKER') || define('IN_TRACKER', true);
|
||||||
defined('PROJECTNAME') || define("PROJECTNAME","NexusPHP");
|
defined('PROJECTNAME') || define("PROJECTNAME","NexusPHP");
|
||||||
defined('NEXUSPHPURL') || define("NEXUSPHPURL","https://nexusphp.org");
|
defined('NEXUSPHPURL') || define("NEXUSPHPURL","https://nexusphp.org");
|
||||||
|
|||||||
@@ -3247,10 +3247,11 @@ function torrenttable($rows, $variant = "torrent") {
|
|||||||
global $lang_functions;
|
global $lang_functions;
|
||||||
global $CURUSER, $waitsystem;
|
global $CURUSER, $waitsystem;
|
||||||
global $showextinfo;
|
global $showextinfo;
|
||||||
global $torrentmanage_class, $smalldescription_main, $enabletooltip_tweak;
|
global $torrentmanage_class, $smalldescription_main, $enabletooltip_tweak, $staffmem_class;
|
||||||
global $CURLANGDIR;
|
global $CURLANGDIR;
|
||||||
|
|
||||||
$torrent = new Nexus\Torrent\Torrent();
|
$torrent = new Nexus\Torrent\Torrent();
|
||||||
|
$torrentRep = new \App\Repositories\TorrentRepository();
|
||||||
$torrentIdArr = array_column($rows, 'id');
|
$torrentIdArr = array_column($rows, 'id');
|
||||||
$torrentSeedingLeechingStatus = $torrent->listLeechingSeedingStatus($CURUSER['id'], $torrentIdArr);
|
$torrentSeedingLeechingStatus = $torrent->listLeechingSeedingStatus($CURUSER['id'], $torrentIdArr);
|
||||||
$tagRep = new \App\Repositories\TagRepository();
|
$tagRep = new \App\Repositories\TagRepository();
|
||||||
@@ -3259,7 +3260,6 @@ function torrenttable($rows, $variant = "torrent") {
|
|||||||
$torrentTagCollection = \App\Models\TorrentTag::query()->whereIn('torrent_id', $torrentIdArr)->orderByRaw("field(tag_id,$tagIdStr)")->get();
|
$torrentTagCollection = \App\Models\TorrentTag::query()->whereIn('torrent_id', $torrentIdArr)->orderByRaw("field(tag_id,$tagIdStr)")->get();
|
||||||
$tagKeyById = $tagCollection->keyBy('id');
|
$tagKeyById = $tagCollection->keyBy('id');
|
||||||
$torrentTagResult = $torrentTagCollection->groupBy('torrent_id');
|
$torrentTagResult = $torrentTagCollection->groupBy('torrent_id');
|
||||||
$approvalStatusIconEnabled = \App\Models\Setting::get('torrent.approval_status_icon_enabled') == 'yes';
|
|
||||||
|
|
||||||
$last_browse = $CURUSER['last_browse'];
|
$last_browse = $CURUSER['last_browse'];
|
||||||
// if ($variant == "torrent"){
|
// if ($variant == "torrent"){
|
||||||
@@ -3453,10 +3453,7 @@ foreach ($rows as $row)
|
|||||||
|
|
||||||
$banned_torrent = ($row["banned"] == 'yes' ? " <b>(<font class=\"striking\">".$lang_functions['text_banned']."</font>)</b>" : "");
|
$banned_torrent = ($row["banned"] == 'yes' ? " <b>(<font class=\"striking\">".$lang_functions['text_banned']."</font>)</b>" : "");
|
||||||
$sp_torrent_sub = get_torrent_promotion_append_sub($row['sp_state'],"",true,$row['added'], $row['promotion_time_type'], $row['promotion_until'], $row['__ignore_global_sp_state'] ?? false);
|
$sp_torrent_sub = get_torrent_promotion_append_sub($row['sp_state'],"",true,$row['added'], $row['promotion_time_type'], $row['promotion_until'], $row['__ignore_global_sp_state'] ?? false);
|
||||||
$approvalStatusIcon = '';
|
$approvalStatusIcon = $torrentRep->renderApprovalStatus($row['approval_status']);
|
||||||
if ($approvalStatusIconEnabled) {
|
|
||||||
$approvalStatusIcon = $torrent->renderApprovalStatus($row['approval_status']);
|
|
||||||
}
|
|
||||||
$titleSuffix = $banned_torrent.$picked_torrent.$sp_torrent.$sp_torrent_sub. $hrImg . $approvalStatusIcon;
|
$titleSuffix = $banned_torrent.$picked_torrent.$sp_torrent.$sp_torrent_sub. $hrImg . $approvalStatusIcon;
|
||||||
$titleSuffix = apply_filter('torrent_title_suffix', $titleSuffix, $row);
|
$titleSuffix = apply_filter('torrent_title_suffix', $titleSuffix, $row);
|
||||||
print($titleSuffix);
|
print($titleSuffix);
|
||||||
|
|||||||
@@ -758,8 +758,10 @@ $lang_settings = array
|
|||||||
'text_misc_settings_note' => '配置其他杂项。',
|
'text_misc_settings_note' => '配置其他杂项。',
|
||||||
'row_misc_donation_custom' => '捐赠自定义内容',
|
'row_misc_donation_custom' => '捐赠自定义内容',
|
||||||
'text_donation_custom_note' => '捐赠页自定义的内容,展示于支付宝、PayPal上面。支持 <b><a href="tags.php" target="_blank">bbcode 标签</a></b>',
|
'text_donation_custom_note' => '捐赠页自定义的内容,展示于支付宝、PayPal上面。支持 <b><a href="tags.php" target="_blank">bbcode 标签</a></b>',
|
||||||
'row_approval_status_icon_enabled' => '审核状态图标',
|
'row_approval_status_icon_enabled' => '显示审核状态图标',
|
||||||
'text_approval_status_icon_enabled_note' => "是否在种子列表展示审核状态图标,默认: '否'。"
|
'text_approval_status_icon_enabled_note' => "是否在种子列表展示审核状态图标,默认: '否'。",
|
||||||
|
'row_approval_status_none_visible' => '未审核种子是否可见',
|
||||||
|
'text_approval_status_none_visible_note' => "默认:'是'。若改为'否',审核不为[通过]状态时强制显示审核状态图标。",
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -758,8 +758,10 @@ $lang_settings = array
|
|||||||
'text_misc_settings_note' => '配置其他雜項。',
|
'text_misc_settings_note' => '配置其他雜項。',
|
||||||
'row_misc_donation_custom' => '捐贈自定義內容',
|
'row_misc_donation_custom' => '捐贈自定義內容',
|
||||||
'text_donation_custom_note' => '捐贈頁自定義的內容,展示於支付寶、PayPal上面。支持 <b><a href="tags.php" target="_blank">bbcode 標簽</a></b>',
|
'text_donation_custom_note' => '捐贈頁自定義的內容,展示於支付寶、PayPal上面。支持 <b><a href="tags.php" target="_blank">bbcode 標簽</a></b>',
|
||||||
'row_approval_status_icon_enabled' => '審核狀態圖標',
|
'row_approval_status_icon_enabled' => '顯示審核狀態圖標',
|
||||||
'text_approval_status_icon_enabled_note' => "是否在種子列表展示審核狀態圖標,默認: '否'。"
|
'text_approval_status_icon_enabled_note' => "是否在種子列表展示審核狀態圖標,默認: '否'。",
|
||||||
|
'row_approval_status_none_visible' => '未審核種子是否可見',
|
||||||
|
'text_approval_status_none_visible_note' => "默認:'是'。若改為'否',審核不為[通過]狀態時強製顯示審核狀態圖標。",
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -758,8 +758,10 @@ $lang_settings = array
|
|||||||
'text_misc_settings_note' => 'Misc settings',
|
'text_misc_settings_note' => 'Misc settings',
|
||||||
'row_misc_donation_custom' => 'Donation custom',
|
'row_misc_donation_custom' => 'Donation custom',
|
||||||
'text_donation_custom_note' => 'Donation page custom content, displayed above Alipay, PayPal. Support <b><a href="tags.php" target="_blank">bbcode tag</a></b>',
|
'text_donation_custom_note' => 'Donation page custom content, displayed above Alipay, PayPal. Support <b><a href="tags.php" target="_blank">bbcode tag</a></b>',
|
||||||
'row_approval_status_icon_enabled' => 'Approval status icon',
|
'row_approval_status_icon_enabled' => 'Show approval status icon',
|
||||||
'text_approval_status_icon_enabled_note' => "Whether to show the approval status icon in the torrent list, default: 'No'."
|
'text_approval_status_icon_enabled_note' => "Whether to show the approval status icon in the torrent list, default: 'No'.",
|
||||||
|
'row_approval_status_none_visible' => 'Visibility of not reviewed torrents',
|
||||||
|
'text_approval_status_none_visible_note' => "Default: 'Yes'. If change to 'No', force to show approval status icon when audit is not [allow] status.",
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -295,24 +295,24 @@ class Update extends Install
|
|||||||
public function requestGithub($url)
|
public function requestGithub($url)
|
||||||
{
|
{
|
||||||
$client = new Client();
|
$client = new Client();
|
||||||
$logPrefix = "请求 github: $url";
|
$logPrefix = "Request github: $url";
|
||||||
$response = $client->get($url, ['timeout' => 10,]);
|
$response = $client->get($url, ['timeout' => 10,]);
|
||||||
if (($statusCode = $response->getStatusCode()) != 200) {
|
if (($statusCode = $response->getStatusCode()) != 200) {
|
||||||
throw new \RuntimeException("$logPrefix 失败,状态码:$statusCode");
|
throw new \RuntimeException("$logPrefix fail, status code:$statusCode");
|
||||||
}
|
}
|
||||||
if ($response->getBody()->getSize() <= 0) {
|
if ($response->getBody()->getSize() <= 0) {
|
||||||
throw new \RuntimeException("$logPrefix 失败,结果为空");
|
throw new \RuntimeException("$logPrefix fail, response empty");
|
||||||
}
|
}
|
||||||
$bodyString = $response->getBody()->getContents();
|
$bodyString = $response->getBody()->getContents();
|
||||||
$this->doLog("[REQUEST_GITHUB_RESPONSE]: $bodyString");
|
$this->doLog("[REQUEST_GITHUB_RESPONSE]: $bodyString");
|
||||||
$results = json_decode($bodyString, true);
|
$results = json_decode($bodyString, true);
|
||||||
if (empty($results) || !is_array($results)) {
|
if (empty($results) || !is_array($results)) {
|
||||||
throw new \RuntimeException("$logPrefix 结果异常");
|
throw new \RuntimeException("$logPrefix response invalid");
|
||||||
}
|
}
|
||||||
return $results;
|
return $results;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function downAndExtractCode($url): bool
|
public function downAndExtractCode($url): string
|
||||||
{
|
{
|
||||||
$arr = explode('/', $url);
|
$arr = explode('/', $url);
|
||||||
$basename = last($arr);
|
$basename = last($arr);
|
||||||
@@ -329,16 +329,16 @@ class Update extends Install
|
|||||||
$client = new Client();
|
$client = new Client();
|
||||||
$response = $client->request('GET', $url, ['sink' => $filename]);
|
$response = $client->request('GET', $url, ['sink' => $filename]);
|
||||||
if (($statusCode = $response->getStatusCode()) != 200) {
|
if (($statusCode = $response->getStatusCode()) != 200) {
|
||||||
throw new \RuntimeException("下载错误,状态码:$statusCode");
|
throw new \RuntimeException("Download fail, status code:$statusCode");
|
||||||
}
|
}
|
||||||
if (($bodySize = $response->getBody()->getSize()) <= 0) {
|
if (($bodySize = $response->getBody()->getSize()) <= 0) {
|
||||||
throw new \RuntimeException("下载错误,文件体积:$bodySize");
|
throw new \RuntimeException("Download fail, file size:$bodySize");
|
||||||
}
|
}
|
||||||
if (!file_exists($filename)) {
|
if (!file_exists($filename)) {
|
||||||
throw new \RuntimeException("下载错误,文件不存在:$filename");
|
throw new \RuntimeException("Download fail, file not exists:$filename");
|
||||||
}
|
}
|
||||||
if (filesize($filename) <= 0) {
|
if (filesize($filename) <= 0) {
|
||||||
throw new \RuntimeException("下载错误,文件大小为0");
|
throw new \RuntimeException("Download fail, file: $filename size = 0");
|
||||||
}
|
}
|
||||||
$this->doLog('SUCCESS_DOWNLOAD');
|
$this->doLog('SUCCESS_DOWNLOAD');
|
||||||
$extractDir = str_replace($suffix, "", $filename);
|
$extractDir = str_replace($suffix, "", $filename);
|
||||||
@@ -346,7 +346,7 @@ class Update extends Install
|
|||||||
$this->executeCommand($command);
|
$this->executeCommand($command);
|
||||||
|
|
||||||
if ($isZip) {
|
if ($isZip) {
|
||||||
$command = "unzip $filename -d $extractDir";
|
$command = "unzip -q $filename -d $extractDir";
|
||||||
} else {
|
} else {
|
||||||
$command = "tar -xf $filename -C $extractDir";
|
$command = "tar -xf $filename -C $extractDir";
|
||||||
}
|
}
|
||||||
@@ -354,13 +354,18 @@ class Update extends Install
|
|||||||
|
|
||||||
foreach (glob("$extractDir/*") as $path) {
|
foreach (glob("$extractDir/*") as $path) {
|
||||||
if (is_dir($path)) {
|
if (is_dir($path)) {
|
||||||
$command = sprintf('cp -Rf %s/* %s', $path, ROOT_PATH);
|
$excludes = ['.git', 'composer.lock', 'composer.json', 'public/favicon.ico', '.env'];
|
||||||
|
// $command = sprintf('cp -raf %s/. %s', $path, ROOT_PATH);
|
||||||
|
$command = "rsync -rvq $path/ " . ROOT_PATH;
|
||||||
|
foreach ($excludes as $exclude) {
|
||||||
|
$command .= " --exclude=$exclude";
|
||||||
|
}
|
||||||
$this->executeCommand($command);
|
$this->executeCommand($command);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->doLog('SUCCESS_EXTRACT');
|
$this->doLog('SUCCESS_EXTRACT');
|
||||||
return true;
|
return $extractDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function initSeedPoints(): int
|
public function initSeedPoints(): int
|
||||||
|
|||||||
@@ -333,6 +333,7 @@ return array (
|
|||||||
'claim_reach_standard_seed_time' => \App\Models\Claim::STANDARD_SEED_TIME_HOURS,
|
'claim_reach_standard_seed_time' => \App\Models\Claim::STANDARD_SEED_TIME_HOURS,
|
||||||
'claim_reach_standard_uploaded' => \App\Models\Claim::STANDARD_UPLOADED_TIMES,
|
'claim_reach_standard_uploaded' => \App\Models\Claim::STANDARD_UPLOADED_TIMES,
|
||||||
'approval_status_icon_enabled' => 'no',
|
'approval_status_icon_enabled' => 'no',
|
||||||
|
'approval_status_none_visible' => 'yes',
|
||||||
),
|
),
|
||||||
'attachment' =>
|
'attachment' =>
|
||||||
array (
|
array (
|
||||||
|
|||||||
@@ -86,9 +86,4 @@ class Torrent
|
|||||||
return $ptGen->buildRatingSpan($siteIdAndRating);
|
return $ptGen->buildRatingSpan($siteIdAndRating);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function renderApprovalStatus($status): string
|
|
||||||
{
|
|
||||||
return sprintf('<span style="margin-left: 6px">%s</span>', \App\Models\Torrent::$approvalStatus[$status]['icon']);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ elseif ($az['showclienterror'] == 'yes'){
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check torrent based on info_hash
|
// check torrent based on info_hash
|
||||||
$checkTorrentSql = "SELECT id, owner, sp_state, seeders, leechers, UNIX_TIMESTAMP(added) AS ts, banned, hr FROM torrents WHERE " . hash_where("info_hash", $info_hash);
|
$checkTorrentSql = "SELECT id, owner, sp_state, seeders, leechers, UNIX_TIMESTAMP(added) AS ts, banned, hr, approval_status FROM torrents WHERE " . hash_where("info_hash", $info_hash);
|
||||||
if (!$torrent = $Cache->get_value('torrent_hash_'.$info_hash.'_content')){
|
if (!$torrent = $Cache->get_value('torrent_hash_'.$info_hash.'_content')){
|
||||||
$res = sql_query($checkTorrentSql);
|
$res = sql_query($checkTorrentSql);
|
||||||
$torrent = mysql_fetch_array($res);
|
$torrent = mysql_fetch_array($res);
|
||||||
@@ -168,8 +168,13 @@ if (!$torrent) {
|
|||||||
do_log("[TORRENT NOT EXISTS] infoHashUrlEncode: $infoHashUrlEncode", 'error');
|
do_log("[TORRENT NOT EXISTS] infoHashUrlEncode: $infoHashUrlEncode", 'error');
|
||||||
|
|
||||||
err("torrent not registered with this tracker");
|
err("torrent not registered with this tracker");
|
||||||
|
} elseif ($az['class'] < $seebanned_class) {
|
||||||
|
if ($torrent['banned'] == 'yes') {
|
||||||
|
err("torrent banned");
|
||||||
|
} elseif ($torrent['approval_status'] != \App\Models\Torrent::APPROVAL_STATUS_ALLOW && get_setting('torrent.approval_status_none_visible') == 'no') {
|
||||||
|
err("torrent review not approved");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
elseif ($torrent['banned'] == 'yes' && $az['class'] < $seebanned_class) err("torrent banned");
|
|
||||||
// select peers info from peers table for this torrent
|
// select peers info from peers table for this torrent
|
||||||
$torrentid = $torrent["id"];
|
$torrentid = $torrent["id"];
|
||||||
$numpeers = $torrent["seeders"]+$torrent["leechers"];
|
$numpeers = $torrent["seeders"]+$torrent["leechers"];
|
||||||
|
|||||||
@@ -71,7 +71,8 @@ if (!$row) {
|
|||||||
$sp_torrent = get_torrent_promotion_append($row['sp_state'],'word', false, '', 0, '', $row['__ignore_global_sp_state'] ?? false);
|
$sp_torrent = get_torrent_promotion_append($row['sp_state'],'word', false, '', 0, '', $row['__ignore_global_sp_state'] ?? false);
|
||||||
$sp_torrent_sub = get_torrent_promotion_append_sub($row['sp_state'],"",true,$row['added'], $row['promotion_time_type'], $row['promotion_until'], $row['__ignore_global_sp_state'] ?? false);
|
$sp_torrent_sub = get_torrent_promotion_append_sub($row['sp_state'],"",true,$row['added'], $row['promotion_time_type'], $row['promotion_until'], $row['__ignore_global_sp_state'] ?? false);
|
||||||
$hrImg = get_hr_img($row);
|
$hrImg = get_hr_img($row);
|
||||||
$s=htmlspecialchars($row["name"]).$banned_torrent.($sp_torrent ? " ".$sp_torrent : "").($sp_torrent_sub) . $hrImg;
|
$approvalStatusIcon = $torrentRep->renderApprovalStatus($row["approval_status"]);
|
||||||
|
$s=htmlspecialchars($row["name"]).$banned_torrent.($sp_torrent ? " ".$sp_torrent : "").($sp_torrent_sub) . $hrImg . $approvalStatusIcon;
|
||||||
print("<h1 align=\"center\" id=\"top\">".$s."</h1>\n");
|
print("<h1 align=\"center\" id=\"top\">".$s."</h1>\n");
|
||||||
|
|
||||||
//Banned reason
|
//Banned reason
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ $trackerSchemaAndHost = get_tracker_schema_and_host();
|
|||||||
$ssl_torrent = $trackerSchemaAndHost['ssl_torrent'];
|
$ssl_torrent = $trackerSchemaAndHost['ssl_torrent'];
|
||||||
$base_announce_url = $trackerSchemaAndHost['base_announce_url'];
|
$base_announce_url = $trackerSchemaAndHost['base_announce_url'];
|
||||||
|
|
||||||
$res = sql_query("SELECT torrents.name, torrents.filename, torrents.save_as, torrents.size, torrents.owner, torrents.banned, categories.mode as search_box_id FROM torrents left join categories on torrents.category = categories.id WHERE torrents.id = ".sqlesc($id)) or sqlerr(__FILE__, __LINE__);
|
$res = sql_query("SELECT torrents.name, torrents.filename, torrents.save_as, torrents.size, torrents.owner, torrents.banned, torrents.approval_status, categories.mode as search_box_id FROM torrents left join categories on torrents.category = categories.id WHERE torrents.id = ".sqlesc($id)) or sqlerr(__FILE__, __LINE__);
|
||||||
$row = mysql_fetch_assoc($res);
|
$row = mysql_fetch_assoc($res);
|
||||||
if (!$row) {
|
if (!$row) {
|
||||||
do_log("[TORRENT_NOT_EXISTS_IN_DATABASE] $id", 'error');
|
do_log("[TORRENT_NOT_EXISTS_IN_DATABASE] $id", 'error');
|
||||||
@@ -107,7 +107,8 @@ if (filesize($fn) == 0) {
|
|||||||
do_log("[TORRENT_NOT_VALID_SIZE_ZERO] $fn",'error');
|
do_log("[TORRENT_NOT_VALID_SIZE_ZERO] $fn",'error');
|
||||||
httperr();
|
httperr();
|
||||||
}
|
}
|
||||||
if (($row['banned'] == 'yes' && get_user_class() < $seebanned_class) || !can_access_torrent($row)) {
|
$approvalNotAllowed = $row['approval_status'] != \App\Models\Torrent::APPROVAL_STATUS_ALLOW && get_setting('torrent.approval_status_none_visible') == 'no';
|
||||||
|
if ((($row['banned'] == 'yes' || $approvalNotAllowed) && get_user_class() < $seebanned_class) || !can_access_torrent($row)) {
|
||||||
denyDownload();
|
denyDownload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,9 +8,13 @@ header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
|
|||||||
header("Cache-Control: no-cache, must-revalidate" );
|
header("Cache-Control: no-cache, must-revalidate" );
|
||||||
header("Pragma: no-cache" );
|
header("Pragma: no-cache" );
|
||||||
//header("Content-Type: text/xml; charset=utf-8");
|
//header("Content-Type: text/xml; charset=utf-8");
|
||||||
|
|
||||||
|
$torrentRep = new \App\Repositories\TorrentRepository();
|
||||||
|
|
||||||
function maketable($res, $mode = 'seeding')
|
function maketable($res, $mode = 'seeding')
|
||||||
{
|
{
|
||||||
global $lang_getusertorrentlistajax,$CURUSER,$smalldescription_main, $lang_functions;
|
global $lang_getusertorrentlistajax,$CURUSER,$smalldescription_main, $lang_functions;
|
||||||
|
global $torrentRep;
|
||||||
switch ($mode)
|
switch ($mode)
|
||||||
{
|
{
|
||||||
case 'uploaded': {
|
case 'uploaded': {
|
||||||
@@ -107,6 +111,7 @@ function maketable($res, $mode = 'seeding')
|
|||||||
}
|
}
|
||||||
|
|
||||||
$hrImg = get_hr_img($arr);
|
$hrImg = get_hr_img($arr);
|
||||||
|
$approvalStatusIcon = $torrentRep->renderApprovalStatus($arr["approval_status"]);
|
||||||
//torrent name
|
//torrent name
|
||||||
$dispname = $nametitle = htmlspecialchars($arr["torrentname"]);
|
$dispname = $nametitle = htmlspecialchars($arr["torrentname"]);
|
||||||
$count_dispname=mb_strlen($dispname,"UTF-8");
|
$count_dispname=mb_strlen($dispname,"UTF-8");
|
||||||
@@ -125,7 +130,7 @@ function maketable($res, $mode = 'seeding')
|
|||||||
}
|
}
|
||||||
else $dissmall_descr == "";
|
else $dissmall_descr == "";
|
||||||
$ret .= "<tr" . $sphighlight . "><td class=\"rowfollow nowrap\" valign=\"middle\" style='padding: 0px'>".return_category_image($arr['category'], "torrents.php?allsec=1&")."</td>\n" .
|
$ret .= "<tr" . $sphighlight . "><td class=\"rowfollow nowrap\" valign=\"middle\" style='padding: 0px'>".return_category_image($arr['category'], "torrents.php?allsec=1&")."</td>\n" .
|
||||||
"<td class=\"rowfollow\" width=\"100%\" align=\"left\"><a href=\"".htmlspecialchars("details.php?id=".$arr['torrent']."&hit=1")."\" title=\"".$nametitle."\"><b>" . $dispname . "</b></a>". $banned_torrent . $sp_torrent . $hrImg .($dissmall_descr == "" ? "" : "<br />" . $dissmall_descr) . "</td>";
|
"<td class=\"rowfollow\" width=\"100%\" align=\"left\"><a href=\"".htmlspecialchars("details.php?id=".$arr['torrent']."&hit=1")."\" title=\"".$nametitle."\"><b>" . $dispname . "</b></a>". $banned_torrent . $sp_torrent . $hrImg . $approvalStatusIcon .($dissmall_descr == "" ? "" : "<br />" . $dissmall_descr) . "</td>";
|
||||||
//size
|
//size
|
||||||
if ($showsize)
|
if ($showsize)
|
||||||
$ret .= "<td class=\"rowfollow\" align=\"center\">". mksize_compact($arr['size'])."</td>";
|
$ret .= "<td class=\"rowfollow\" align=\"center\">". mksize_compact($arr['size'])."</td>";
|
||||||
@@ -184,7 +189,7 @@ switch ($type)
|
|||||||
{
|
{
|
||||||
case 'uploaded':
|
case 'uploaded':
|
||||||
{
|
{
|
||||||
$res = sql_query("SELECT torrents.id AS torrent, torrents.name as torrentname, small_descr, seeders, leechers, anonymous, torrents.banned, categories.name AS catname, categories.image, category, sp_state, size, torrents.hr, snatched.seedtime, snatched.uploaded FROM torrents LEFT JOIN snatched ON torrents.id = snatched.torrentid LEFT JOIN categories ON torrents.category = categories.id WHERE torrents.owner=$id AND snatched.userid=$id " . (($CURUSER["id"] != $id)?((get_user_class() < $viewanonymous_class) ? " AND anonymous = 'no'":""):"") ." ORDER BY torrents.added DESC") or sqlerr(__FILE__, __LINE__);
|
$res = sql_query("SELECT torrents.id AS torrent, torrents.name as torrentname, small_descr, seeders, leechers, anonymous, torrents.banned, torrents.approval_status, categories.name AS catname, categories.image, category, sp_state, size, torrents.hr, snatched.seedtime, snatched.uploaded FROM torrents LEFT JOIN snatched ON torrents.id = snatched.torrentid LEFT JOIN categories ON torrents.category = categories.id WHERE torrents.owner=$id AND snatched.userid=$id " . (($CURUSER["id"] != $id)?((get_user_class() < $viewanonymous_class) ? " AND anonymous = 'no'":""):"") ." ORDER BY torrents.added DESC") or sqlerr(__FILE__, __LINE__);
|
||||||
$count = mysql_num_rows($res);
|
$count = mysql_num_rows($res);
|
||||||
if ($count > 0)
|
if ($count > 0)
|
||||||
{
|
{
|
||||||
@@ -196,7 +201,7 @@ switch ($type)
|
|||||||
// Current Seeding
|
// Current Seeding
|
||||||
case 'seeding':
|
case 'seeding':
|
||||||
{
|
{
|
||||||
$res = sql_query("SELECT torrent,added,snatched.uploaded,snatched.downloaded,torrents.name as torrentname, torrents.small_descr, torrents.sp_state, torrents.banned, categories.name as catname,size,torrents.hr,image,category,seeders,leechers FROM peers LEFT JOIN torrents ON peers.torrent = torrents.id LEFT JOIN categories ON torrents.category = categories.id LEFT JOIN snatched ON torrents.id = snatched.torrentid WHERE peers.userid=$id AND snatched.userid = $id AND peers.seeder='yes' ORDER BY torrents.added DESC") or sqlerr();
|
$res = sql_query("SELECT torrent,added,snatched.uploaded,snatched.downloaded,torrents.name as torrentname, torrents.small_descr, torrents.sp_state, torrents.banned, torrents.approval_status, categories.name as catname,size,torrents.hr,image,category,seeders,leechers FROM peers LEFT JOIN torrents ON peers.torrent = torrents.id LEFT JOIN categories ON torrents.category = categories.id LEFT JOIN snatched ON torrents.id = snatched.torrentid WHERE peers.userid=$id AND snatched.userid = $id AND peers.seeder='yes' ORDER BY torrents.added DESC") or sqlerr();
|
||||||
$count = mysql_num_rows($res);
|
$count = mysql_num_rows($res);
|
||||||
if ($count > 0){
|
if ($count > 0){
|
||||||
list($torrentlist, $total_size) = maketable ( $res, 'seeding' );
|
list($torrentlist, $total_size) = maketable ( $res, 'seeding' );
|
||||||
@@ -207,7 +212,7 @@ switch ($type)
|
|||||||
// Current Leeching
|
// Current Leeching
|
||||||
case 'leeching':
|
case 'leeching':
|
||||||
{
|
{
|
||||||
$res = sql_query("SELECT torrent,snatched.uploaded,snatched.downloaded,torrents.name as torrentname, torrents.small_descr, torrents.sp_state, torrents.banned, categories.name as catname,size,torrents.hr,image,category,seeders,leechers FROM peers LEFT JOIN torrents ON peers.torrent = torrents.id LEFT JOIN categories ON torrents.category = categories.id LEFT JOIN snatched ON torrents.id = snatched.torrentid WHERE peers.userid=$id AND snatched.userid = $id AND peers.seeder='no' ORDER BY torrents.added DESC") or sqlerr();
|
$res = sql_query("SELECT torrent,snatched.uploaded,snatched.downloaded,torrents.name as torrentname, torrents.small_descr, torrents.sp_state, torrents.banned, torrents.approval_status, categories.name as catname,size,torrents.hr,image,category,seeders,leechers FROM peers LEFT JOIN torrents ON peers.torrent = torrents.id LEFT JOIN categories ON torrents.category = categories.id LEFT JOIN snatched ON torrents.id = snatched.torrentid WHERE peers.userid=$id AND snatched.userid = $id AND peers.seeder='no' ORDER BY torrents.added DESC") or sqlerr();
|
||||||
$count = mysql_num_rows($res);
|
$count = mysql_num_rows($res);
|
||||||
if ($count > 0){
|
if ($count > 0){
|
||||||
list($torrentlist, $total_size) = maketable ( $res, 'leeching' );
|
list($torrentlist, $total_size) = maketable ( $res, 'leeching' );
|
||||||
@@ -218,7 +223,7 @@ switch ($type)
|
|||||||
// Completed torrents
|
// Completed torrents
|
||||||
case 'completed':
|
case 'completed':
|
||||||
{
|
{
|
||||||
$res = sql_query("SELECT torrents.id AS torrent, torrents.name AS torrentname, small_descr, categories.name AS catname, torrents.banned, categories.image, category, sp_state, size, torrents.hr,snatched.uploaded, snatched.seedtime, snatched.leechtime, snatched.completedat FROM torrents LEFT JOIN snatched ON torrents.id = snatched.torrentid LEFT JOIN categories on torrents.category = categories.id WHERE snatched.finished='yes' AND torrents.owner != $id AND userid=$id ORDER BY snatched.completedat DESC") or sqlerr();
|
$res = sql_query("SELECT torrents.id AS torrent, torrents.name AS torrentname, small_descr, categories.name AS catname, torrents.banned, torrents.approval_status, categories.image, category, sp_state, size, torrents.hr,snatched.uploaded, snatched.seedtime, snatched.leechtime, snatched.completedat FROM torrents LEFT JOIN snatched ON torrents.id = snatched.torrentid LEFT JOIN categories on torrents.category = categories.id WHERE snatched.finished='yes' AND torrents.owner != $id AND userid=$id ORDER BY snatched.completedat DESC") or sqlerr();
|
||||||
$count = mysql_num_rows($res);
|
$count = mysql_num_rows($res);
|
||||||
if ($count > 0)
|
if ($count > 0)
|
||||||
{
|
{
|
||||||
@@ -230,7 +235,7 @@ switch ($type)
|
|||||||
// Incomplete torrents
|
// Incomplete torrents
|
||||||
case 'incomplete':
|
case 'incomplete':
|
||||||
{
|
{
|
||||||
$res = sql_query("SELECT torrents.id AS torrent, torrents.name AS torrentname, small_descr, torrents.banned, categories.name AS catname, categories.image, category, sp_state, size, torrents.hr,snatched.uploaded, snatched.downloaded, snatched.leechtime FROM torrents LEFT JOIN snatched ON torrents.id = snatched.torrentid LEFT JOIN categories on torrents.category = categories.id WHERE snatched.finished='no' AND userid=$id AND torrents.owner != $id ORDER BY snatched.startdat DESC") or sqlerr();
|
$res = sql_query("SELECT torrents.id AS torrent, torrents.name AS torrentname, small_descr, torrents.banned, torrents.approval_status, categories.name AS catname, categories.image, category, sp_state, size, torrents.hr,snatched.uploaded, snatched.downloaded, snatched.leechtime FROM torrents LEFT JOIN snatched ON torrents.id = snatched.torrentid LEFT JOIN categories on torrents.category = categories.id WHERE snatched.finished='no' AND userid=$id AND torrents.owner != $id ORDER BY snatched.startdat DESC") or sqlerr();
|
||||||
$count = mysql_num_rows($res);
|
$count = mysql_num_rows($res);
|
||||||
if ($count > 0)
|
if ($count > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ elseif($action == 'savesettings_torrent') // save account
|
|||||||
'twoupbecome','twoupfreebecome', 'twouphalfleechbecome','normalbecome','uploaderdouble','deldeadtorrent', 'randomthirtypercentdown',
|
'twoupbecome','twoupfreebecome', 'twouphalfleechbecome','normalbecome','uploaderdouble','deldeadtorrent', 'randomthirtypercentdown',
|
||||||
'thirtypercentleechbecome', 'expirethirtypercentleech', 'sticky_first_level_background_color', 'sticky_second_level_background_color',
|
'thirtypercentleechbecome', 'expirethirtypercentleech', 'sticky_first_level_background_color', 'sticky_second_level_background_color',
|
||||||
'download_support_passkey', 'claim_enabled', 'claim_torrent_ttl', 'claim_torrent_user_counts_up_limit', 'claim_user_torrent_counts_up_limit', 'claim_remove_deduct_user_bonus',
|
'download_support_passkey', 'claim_enabled', 'claim_torrent_ttl', 'claim_torrent_user_counts_up_limit', 'claim_user_torrent_counts_up_limit', 'claim_remove_deduct_user_bonus',
|
||||||
'claim_give_up_deduct_user_bonus', 'claim_bonus_multiplier', 'claim_reach_standard_seed_time', 'claim_reach_standard_uploaded', 'approval_status_icon_enabled'
|
'claim_give_up_deduct_user_bonus', 'claim_bonus_multiplier', 'claim_reach_standard_seed_time', 'claim_reach_standard_uploaded', 'approval_status_icon_enabled', 'approval_status_none_visible'
|
||||||
);
|
);
|
||||||
$validConfig = apply_filter('setting_valid_config', $validConfig);
|
$validConfig = apply_filter('setting_valid_config', $validConfig);
|
||||||
GetVar($validConfig);
|
GetVar($validConfig);
|
||||||
@@ -661,6 +661,7 @@ elseif ($action == 'torrentsettings')
|
|||||||
tr($lang_settings['row_sticky_second_level_background_color'],"<input type='text' name=sticky_second_level_background_color style=\"width: 100px\" value={$TORRENT['sticky_second_level_background_color']}> ".$lang_settings['text_sticky_second_level_background_color_note'], 1);
|
tr($lang_settings['row_sticky_second_level_background_color'],"<input type='text' name=sticky_second_level_background_color style=\"width: 100px\" value={$TORRENT['sticky_second_level_background_color']}> ".$lang_settings['text_sticky_second_level_background_color_note'], 1);
|
||||||
yesorno($lang_settings['row_download_support_passkey'], 'download_support_passkey', $TORRENT["download_support_passkey"], $lang_settings['text_download_support_passkey_note']);
|
yesorno($lang_settings['row_download_support_passkey'], 'download_support_passkey', $TORRENT["download_support_passkey"], $lang_settings['text_download_support_passkey_note']);
|
||||||
yesorno($lang_settings['row_approval_status_icon_enabled'], 'approval_status_icon_enabled', $TORRENT["approval_status_icon_enabled"], $lang_settings['text_approval_status_icon_enabled_note']);
|
yesorno($lang_settings['row_approval_status_icon_enabled'], 'approval_status_icon_enabled', $TORRENT["approval_status_icon_enabled"], $lang_settings['text_approval_status_icon_enabled_note']);
|
||||||
|
yesorno($lang_settings['row_approval_status_none_visible'], 'approval_status_none_visible', $TORRENT["approval_status_none_visible"], $lang_settings['text_approval_status_none_visible_note']);
|
||||||
yesorno($lang_settings['row_promotion_rules'], 'prorules', $TORRENT["prorules"], $lang_settings['text_promotion_rules_note']);
|
yesorno($lang_settings['row_promotion_rules'], 'prorules', $TORRENT["prorules"], $lang_settings['text_promotion_rules_note']);
|
||||||
tr($lang_settings['row_random_promotion'], $lang_settings['text_random_promotion_note_one']."<ul><li><input type='text' style=\"width: 50px\" name=randomhalfleech value='".(isset($TORRENT["randomhalfleech"]) ? $TORRENT["randomhalfleech"] : 5 )."'>".$lang_settings['text_halfleech_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomfree value='".(isset($TORRENT["randomfree"]) ? $TORRENT["randomfree"] : 2 )."'>".$lang_settings['text_free_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomtwoup value='".(isset($TORRENT["randomtwoup"]) ? $TORRENT["randomtwoup"] : 2 )."'>".$lang_settings['text_twoup_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomtwoupfree value='".(isset($TORRENT["randomtwoupfree"]) ? $TORRENT["randomtwoupfree"] : 1 )."'>".$lang_settings['text_freetwoup_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomtwouphalfdown value='".(isset($TORRENT["randomtwouphalfdown"]) ? $TORRENT["randomtwouphalfdown"] : 0 )."'>".$lang_settings['text_twouphalfleech_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomthirtypercentdown value='".(isset($TORRENT["randomthirtypercentdown"]) ? $TORRENT["randomthirtypercentdown"] : 0 )."'>".$lang_settings['text_thirtypercentleech_chance_becoming']."</li></ul>".$lang_settings['text_random_promotion_note_two'], 1);
|
tr($lang_settings['row_random_promotion'], $lang_settings['text_random_promotion_note_one']."<ul><li><input type='text' style=\"width: 50px\" name=randomhalfleech value='".(isset($TORRENT["randomhalfleech"]) ? $TORRENT["randomhalfleech"] : 5 )."'>".$lang_settings['text_halfleech_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomfree value='".(isset($TORRENT["randomfree"]) ? $TORRENT["randomfree"] : 2 )."'>".$lang_settings['text_free_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomtwoup value='".(isset($TORRENT["randomtwoup"]) ? $TORRENT["randomtwoup"] : 2 )."'>".$lang_settings['text_twoup_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomtwoupfree value='".(isset($TORRENT["randomtwoupfree"]) ? $TORRENT["randomtwoupfree"] : 1 )."'>".$lang_settings['text_freetwoup_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomtwouphalfdown value='".(isset($TORRENT["randomtwouphalfdown"]) ? $TORRENT["randomtwouphalfdown"] : 0 )."'>".$lang_settings['text_twouphalfleech_chance_becoming']."</li><li><input type='text' style=\"width: 50px\" name=randomthirtypercentdown value='".(isset($TORRENT["randomthirtypercentdown"]) ? $TORRENT["randomthirtypercentdown"] : 0 )."'>".$lang_settings['text_thirtypercentleech_chance_becoming']."</li></ul>".$lang_settings['text_random_promotion_note_two'], 1);
|
||||||
tr($lang_settings['row_large_torrent_promotion'], $lang_settings['text_torrent_larger_than']."<input type='text' style=\"width: 50px\" name=largesize value='".(isset($TORRENT["largesize"]) ? $TORRENT["largesize"] : 20 )."'>".$lang_settings['text_gb_promoted_to']."<select name=largepro>".promotion_selection((isset($TORRENT['largepro']) ? $TORRENT['largepro'] : 2), 1)."</select>".$lang_settings['text_by_system_upon_uploading']."<br />".$lang_settings['text_large_torrent_promotion_note'], 1);
|
tr($lang_settings['row_large_torrent_promotion'], $lang_settings['text_torrent_larger_than']."<input type='text' style=\"width: 50px\" name=largesize value='".(isset($TORRENT["largesize"]) ? $TORRENT["largesize"] : 20 )."'>".$lang_settings['text_gb_promoted_to']."<select name=largepro>".promotion_selection((isset($TORRENT['largepro']) ? $TORRENT['largepro'] : 2), 1)."</select>".$lang_settings['text_by_system_upon_uploading']."<br />".$lang_settings['text_large_torrent_promotion_note'], 1);
|
||||||
|
|||||||
@@ -77,6 +77,13 @@ if($showrows < 1 || $showrows > 50)
|
|||||||
$showrows = 10;
|
$showrows = 10;
|
||||||
$limit .= $showrows;
|
$limit .= $showrows;
|
||||||
|
|
||||||
|
$where = '';
|
||||||
|
//approval status
|
||||||
|
$approvalStatusNoneVisible = get_setting('torrent.approval_status_none_visible');
|
||||||
|
if ($approvalStatusNoneVisible == 'no' && get_user_class() < $staffmem_class) {
|
||||||
|
$where = "torrents.approval_status = " . \App\Models\Torrent::APPROVAL_STATUS_ALLOW;
|
||||||
|
}
|
||||||
|
|
||||||
function get_where($tablename = "sources", $itemname = "source", $getname = "sou")
|
function get_where($tablename = "sources", $itemname = "source", $getname = "sou")
|
||||||
{
|
{
|
||||||
global $where;
|
global $where;
|
||||||
|
|||||||
@@ -806,6 +806,12 @@ if (isset($searchstr))
|
|||||||
$addparam .= "search_mode=".$search_mode."&";
|
$addparam .= "search_mode=".$search_mode."&";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//approval status
|
||||||
|
$approvalStatusNoneVisible = get_setting('torrent.approval_status_none_visible');
|
||||||
|
if ($approvalStatusNoneVisible == 'no' && get_user_class() < $staffmem_class) {
|
||||||
|
$wherea[] = "torrents.approval_status = " . \App\Models\Torrent::APPROVAL_STATUS_ALLOW;
|
||||||
|
}
|
||||||
|
|
||||||
$where = implode(" AND ", $wherea);
|
$where = implode(" AND ", $wherea);
|
||||||
|
|
||||||
if ($wherecatin)
|
if ($wherecatin)
|
||||||
|
|||||||
@@ -68,10 +68,10 @@ return [
|
|||||||
'status_label' => 'Approval status',
|
'status_label' => 'Approval status',
|
||||||
'comment_label' => 'Comment(optional)',
|
'comment_label' => 'Comment(optional)',
|
||||||
'status_text' => [
|
'status_text' => [
|
||||||
\App\Models\Torrent::APPROVAL_STATUS_NONE => 'None',
|
\App\Models\Torrent::APPROVAL_STATUS_NONE => 'Not reviewed',
|
||||||
\App\Models\Torrent::APPROVAL_STATUS_ALLOW => 'Allow',
|
\App\Models\Torrent::APPROVAL_STATUS_ALLOW => 'Review approved',
|
||||||
\App\Models\Torrent::APPROVAL_STATUS_DENY => 'Deny',
|
\App\Models\Torrent::APPROVAL_STATUS_DENY => 'Review not approved',
|
||||||
],
|
],
|
||||||
'deny_comment_show' => 'Denied, reason: reason',
|
'deny_comment_show' => 'Denied, reason: :reason',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user