mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 00:01:21 +00:00
Small opcode optimizations
This commit is contained in:
@@ -272,122 +272,65 @@ class DeleteReleases extends Command
|
||||
$modifier = trim($args[1]);
|
||||
$value = trim($args[2], '"\'');
|
||||
|
||||
switch ($column) {
|
||||
case 'categories_id':
|
||||
if ($modifier === 'equals') {
|
||||
return " AND categories_id = {$value}";
|
||||
}
|
||||
break;
|
||||
case 'imdbid':
|
||||
if ($modifier === 'equals') {
|
||||
if ($value === 'NULL') {
|
||||
return ' AND imdbid IS NULL';
|
||||
}
|
||||
return match ($column) {
|
||||
'categories_id' => $modifier === 'equals' ? " AND categories_id = {$value}" : null,
|
||||
'imdbid' => $modifier === 'equals' ? ($value === 'NULL' ? ' AND imdbid IS NULL' : " AND imdbid = {$value}") : null,
|
||||
'nzbstatus' => $modifier === 'equals' ? " AND nzbstatus = {$value}" : null,
|
||||
'rageid' => $modifier === 'equals' ? " AND rageid = {$value}" : null,
|
||||
'totalpart' => match ($modifier) {
|
||||
'equals' => " AND totalpart = {$value}",
|
||||
'bigger' => " AND totalpart > {$value}",
|
||||
'smaller' => " AND totalpart < {$value}",
|
||||
default => null,
|
||||
},
|
||||
'completion' => $modifier === 'smaller' ? " AND completion < {$value}" : null,
|
||||
'size' => match ($modifier) {
|
||||
'equals' => " AND size = {$value}",
|
||||
'bigger' => " AND size > {$value}",
|
||||
'smaller' => " AND size < {$value}",
|
||||
default => null,
|
||||
},
|
||||
'adddate' => match ($modifier) {
|
||||
'bigger' => " AND adddate < (NOW() - INTERVAL {$value} HOUR)",
|
||||
'smaller' => " AND adddate > (NOW() - INTERVAL {$value} HOUR)",
|
||||
default => null,
|
||||
},
|
||||
'postdate' => match ($modifier) {
|
||||
'bigger' => " AND postdate < (NOW() - INTERVAL {$value} HOUR)",
|
||||
'smaller' => " AND postdate > (NOW() - INTERVAL {$value} HOUR)",
|
||||
default => null,
|
||||
},
|
||||
'fromname' => match ($modifier) {
|
||||
'equals' => ' AND fromname = '.DB::connection()->getPdo()->quote($value),
|
||||
'like' => ' AND fromname LIKE '.DB::connection()->getPdo()->quote('%'.str_replace(' ', '%', $value).'%'),
|
||||
default => null,
|
||||
},
|
||||
'groupname' => match ($modifier) {
|
||||
'equals' => (static function () use ($value) {
|
||||
$group = DB::select('SELECT id FROM usenet_groups WHERE name = ?', [$value]);
|
||||
|
||||
return " AND imdbid = {$value}";
|
||||
}
|
||||
break;
|
||||
case 'nzbstatus':
|
||||
if ($modifier === 'equals') {
|
||||
return " AND nzbstatus = {$value}";
|
||||
}
|
||||
break;
|
||||
case 'rageid':
|
||||
if ($modifier === 'equals') {
|
||||
return " AND rageid = {$value}";
|
||||
}
|
||||
break;
|
||||
case 'totalpart':
|
||||
switch ($modifier) {
|
||||
case 'equals':
|
||||
return " AND totalpart = {$value}";
|
||||
case 'bigger':
|
||||
return " AND totalpart > {$value}";
|
||||
case 'smaller':
|
||||
return " AND totalpart < {$value}";
|
||||
}
|
||||
break;
|
||||
case 'completion':
|
||||
if ($modifier === 'smaller') {
|
||||
return " AND completion < {$value}";
|
||||
}
|
||||
break;
|
||||
case 'size':
|
||||
switch ($modifier) {
|
||||
case 'equals':
|
||||
return " AND size = {$value}";
|
||||
case 'bigger':
|
||||
return " AND size > {$value}";
|
||||
case 'smaller':
|
||||
return " AND size < {$value}";
|
||||
}
|
||||
break;
|
||||
case 'adddate':
|
||||
switch ($modifier) {
|
||||
case 'bigger':
|
||||
return " AND adddate < (NOW() - INTERVAL {$value} HOUR)";
|
||||
case 'smaller':
|
||||
return " AND adddate > (NOW() - INTERVAL {$value} HOUR)";
|
||||
}
|
||||
break;
|
||||
case 'postdate':
|
||||
switch ($modifier) {
|
||||
case 'bigger':
|
||||
return " AND postdate < (NOW() - INTERVAL {$value} HOUR)";
|
||||
case 'smaller':
|
||||
return " AND postdate > (NOW() - INTERVAL {$value} HOUR)";
|
||||
}
|
||||
break;
|
||||
case 'fromname':
|
||||
switch ($modifier) {
|
||||
case 'equals':
|
||||
return ' AND fromname = '.DB::connection()->getPdo()->quote($value);
|
||||
case 'like':
|
||||
return ' AND fromname LIKE '.DB::connection()->getPdo()->quote('%'.str_replace(' ', '%', $value).'%');
|
||||
}
|
||||
break;
|
||||
case 'groupname':
|
||||
switch ($modifier) {
|
||||
case 'equals':
|
||||
$group = DB::select('SELECT id FROM usenet_groups WHERE name = ?', [$value]);
|
||||
if (! empty($group)) {
|
||||
return " AND groups_id = {$group[0]->id}";
|
||||
}
|
||||
break;
|
||||
case 'like':
|
||||
$groups = DB::select('SELECT id FROM usenet_groups WHERE name LIKE ?', ['%'.str_replace(' ', '%', $value).'%']);
|
||||
if (! empty($groups)) {
|
||||
$ids = array_column($groups, 'id');
|
||||
return ! empty($group) ? " AND groups_id = {$group[0]->id}" : null;
|
||||
})(),
|
||||
'like' => (static function () use ($value) {
|
||||
$groups = DB::select('SELECT id FROM usenet_groups WHERE name LIKE ?', ['%'.str_replace(' ', '%', $value).'%']);
|
||||
|
||||
return ' AND groups_id IN ('.implode(',', $ids).')';
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'guid':
|
||||
if ($modifier === 'equals') {
|
||||
return ' AND guid = '.DB::connection()->getPdo()->quote($value);
|
||||
}
|
||||
break;
|
||||
case 'name':
|
||||
switch ($modifier) {
|
||||
case 'equals':
|
||||
return ' AND name = '.DB::connection()->getPdo()->quote($value);
|
||||
case 'like':
|
||||
return ' AND name LIKE '.DB::connection()->getPdo()->quote('%'.str_replace(' ', '%', $value).'%');
|
||||
}
|
||||
break;
|
||||
case 'searchname':
|
||||
switch ($modifier) {
|
||||
case 'equals':
|
||||
return ' AND searchname = '.DB::connection()->getPdo()->quote($value);
|
||||
case 'like':
|
||||
return ' AND searchname LIKE '.DB::connection()->getPdo()->quote('%'.str_replace(' ', '%', $value).'%');
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return null;
|
||||
return ! empty($groups) ? ' AND groups_id IN ('.implode(',', array_column($groups, 'id')).')' : null;
|
||||
})(),
|
||||
default => null,
|
||||
},
|
||||
'guid' => $modifier === 'equals' ? ' AND guid = '.DB::connection()->getPdo()->quote($value) : null,
|
||||
'name' => match ($modifier) {
|
||||
'equals' => ' AND name = '.DB::connection()->getPdo()->quote($value),
|
||||
'like' => ' AND name LIKE '.DB::connection()->getPdo()->quote('%'.str_replace(' ', '%', $value).'%'),
|
||||
default => null,
|
||||
},
|
||||
'searchname' => match ($modifier) {
|
||||
'equals' => ' AND searchname = '.DB::connection()->getPdo()->quote($value),
|
||||
'like' => ' AND searchname LIKE '.DB::connection()->getPdo()->quote('%'.str_replace(' ', '%', $value).'%'),
|
||||
default => null,
|
||||
},
|
||||
default => null,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -75,7 +75,7 @@ class GroupsUpdate extends Command
|
||||
$bar->start();
|
||||
|
||||
foreach ($data as $newgroup) {
|
||||
if (\in_array($newgroup['group'], $activeGroups, false)) {
|
||||
if (\in_array($newgroup['group'], $activeGroups, true)) {
|
||||
ShortGroup::query()->insert([
|
||||
'name' => $newgroup['group'],
|
||||
'first_record' => $newgroup['first'],
|
||||
|
||||
@@ -85,7 +85,7 @@ class UpdateNNTmuxDB extends Command
|
||||
$driver = $dbConfig['driver'] ?? null;
|
||||
|
||||
// Detect actual database type for MySQL-compatible drivers
|
||||
if (in_array($driver, ['mysql', 'mariadb'])) {
|
||||
if (in_array($driver, ['mysql', 'mariadb'], true)) {
|
||||
$version = DB::select('SELECT VERSION() as version')[0]->version;
|
||||
|
||||
if (str_contains(strtolower($version), 'mariadb')) {
|
||||
@@ -198,7 +198,7 @@ class UpdateNNTmuxDB extends Command
|
||||
private function optimizeDatabase(string $dbType): void
|
||||
{
|
||||
try {
|
||||
if (in_array($dbType, ['mysql', 'mariadb'])) {
|
||||
if (in_array($dbType, ['mysql', 'mariadb'], true)) {
|
||||
$this->optimizeMysqlCompatible($dbType);
|
||||
} elseif ($dbType === 'pgsql') {
|
||||
$this->optimizePostgres();
|
||||
|
||||
@@ -865,76 +865,25 @@ if (! function_exists('showApiError')) {
|
||||
{
|
||||
$errorHeader = 'HTTP 1.1 400 Bad Request';
|
||||
if ($errorText === '') {
|
||||
switch ($errorCode) {
|
||||
case 100:
|
||||
$errorText = 'Incorrect user credentials';
|
||||
$errorHeader = 'HTTP 1.1 401 Unauthorized';
|
||||
break;
|
||||
case 101:
|
||||
$errorText = 'Account suspended';
|
||||
$errorHeader = 'HTTP 1.1 403 Forbidden';
|
||||
break;
|
||||
case 102:
|
||||
$errorText = 'Insufficient privileges/not authorized';
|
||||
$errorHeader = 'HTTP 1.1 401 Unauthorized';
|
||||
break;
|
||||
case 103:
|
||||
$errorText = 'Registration denied';
|
||||
$errorHeader = 'HTTP 1.1 403 Forbidden';
|
||||
break;
|
||||
case 104:
|
||||
$errorText = 'Registrations are closed';
|
||||
$errorHeader = 'HTTP 1.1 403 Forbidden';
|
||||
break;
|
||||
case 105:
|
||||
$errorText = 'Invalid registration (Email Address Taken)';
|
||||
$errorHeader = 'HTTP 1.1 403 Forbidden';
|
||||
break;
|
||||
case 106:
|
||||
$errorText = 'Invalid registration (Email Address Bad Format)';
|
||||
$errorHeader = 'HTTP 1.1 403 Forbidden';
|
||||
break;
|
||||
case 107:
|
||||
$errorText = 'Registration Failed (Data error)';
|
||||
$errorHeader = 'HTTP 1.1 400 Bad Request';
|
||||
break;
|
||||
case 200:
|
||||
$errorText = 'Missing parameter';
|
||||
$errorHeader = 'HTTP 1.1 400 Bad Request';
|
||||
break;
|
||||
case 201:
|
||||
$errorText = 'Incorrect parameter';
|
||||
$errorHeader = 'HTTP 1.1 400 Bad Request';
|
||||
break;
|
||||
case 202:
|
||||
$errorText = 'No such function';
|
||||
$errorHeader = 'HTTP 1.1 404 Not Found';
|
||||
break;
|
||||
case 203:
|
||||
$errorText = 'Function not available';
|
||||
$errorHeader = 'HTTP 1.1 400 Bad Request';
|
||||
break;
|
||||
case 300:
|
||||
$errorText = 'No such item';
|
||||
$errorHeader = 'HTTP 1.1 404 Not Found';
|
||||
break;
|
||||
case 500:
|
||||
$errorText = 'Request limit reached';
|
||||
$errorHeader = 'HTTP 1.1 429 Too Many Requests';
|
||||
break;
|
||||
case 501:
|
||||
$errorText = 'Download limit reached';
|
||||
$errorHeader = 'HTTP 1.1 429 Too Many Requests';
|
||||
break;
|
||||
case 910:
|
||||
$errorText = 'API disabled';
|
||||
$errorHeader = 'HTTP 1.1 401 Unauthorized';
|
||||
break;
|
||||
default:
|
||||
$errorText = 'Unknown error';
|
||||
$errorHeader = 'HTTP 1.1 400 Bad Request';
|
||||
break;
|
||||
}
|
||||
[$errorText, $errorHeader] = match ($errorCode) {
|
||||
100 => ['Incorrect user credentials', 'HTTP 1.1 401 Unauthorized'],
|
||||
101 => ['Account suspended', 'HTTP 1.1 403 Forbidden'],
|
||||
102 => ['Insufficient privileges/not authorized', 'HTTP 1.1 401 Unauthorized'],
|
||||
103 => ['Registration denied', 'HTTP 1.1 403 Forbidden'],
|
||||
104 => ['Registrations are closed', 'HTTP 1.1 403 Forbidden'],
|
||||
105 => ['Invalid registration (Email Address Taken)', 'HTTP 1.1 403 Forbidden'],
|
||||
106 => ['Invalid registration (Email Address Bad Format)', 'HTTP 1.1 403 Forbidden'],
|
||||
107 => ['Registration Failed (Data error)', 'HTTP 1.1 400 Bad Request'],
|
||||
200 => ['Missing parameter', 'HTTP 1.1 400 Bad Request'],
|
||||
201 => ['Incorrect parameter', 'HTTP 1.1 400 Bad Request'],
|
||||
202 => ['No such function', 'HTTP 1.1 404 Not Found'],
|
||||
203 => ['Function not available', 'HTTP 1.1 400 Bad Request'],
|
||||
300 => ['No such item', 'HTTP 1.1 404 Not Found'],
|
||||
500 => ['Request limit reached', 'HTTP 1.1 429 Too Many Requests'],
|
||||
501 => ['Download limit reached', 'HTTP 1.1 429 Too Many Requests'],
|
||||
910 => ['API disabled', 'HTTP 1.1 401 Unauthorized'],
|
||||
default => ['Unknown error', 'HTTP 1.1 400 Bad Request'],
|
||||
};
|
||||
}
|
||||
|
||||
$response =
|
||||
|
||||
@@ -31,7 +31,7 @@ class AdultController extends BasePageController
|
||||
];
|
||||
}
|
||||
$category = $request->has('t') ? $request->input('t') : Category::XXX_ROOT;
|
||||
if ($id && \in_array($id, Arr::pluck($mtmp, 'title'), false)) {
|
||||
if ($id && \in_array($id, Arr::pluck($mtmp, 'title'), true)) {
|
||||
$cat = Category::query()
|
||||
->where('title', $id)
|
||||
->where('root_categories_id', '=', Category::XXX_ROOT)
|
||||
@@ -42,7 +42,7 @@ class AdultController extends BasePageController
|
||||
$catarray[] = $category;
|
||||
|
||||
$ordering = $this->releaseBrowseService->getBrowseOrdering();
|
||||
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '';
|
||||
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, true) ? $request->input('ob') : '';
|
||||
|
||||
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
|
||||
$offset = ($page - 1) * config('nntmux.items_per_page');
|
||||
|
||||
@@ -79,7 +79,7 @@ class ConsoleController extends BasePageController
|
||||
/** @var \App\Models\Genre $gn */
|
||||
$tmpgnr[$gn->id] = $gn->title;
|
||||
}
|
||||
$genre = ($request->has('genre') && array_key_exists($request->input('genre'), $tmpgnr)) ? $request->input('genre') : '';
|
||||
$genre = ($request->has('genre') && isset($tmpgnr[$request->input('genre')])) ? $request->input('genre') : '';
|
||||
|
||||
if ((int) $category === -1) {
|
||||
$catname = 'All';
|
||||
|
||||
@@ -26,7 +26,7 @@ class CoverController extends Controller
|
||||
|
||||
// Build the file path
|
||||
// For preview and sample images, try with _thumb suffix first
|
||||
if (in_array($type, ['preview', 'sample'])) {
|
||||
if (in_array($type, ['preview', 'sample'], true)) {
|
||||
$pathInfo = pathinfo($filename);
|
||||
$thumbFilename = $pathInfo['filename'].'_thumb.'.($pathInfo['extension'] ?? 'jpg');
|
||||
$thumbPath = storage_path("covers/{$type}/{$thumbFilename}");
|
||||
|
||||
@@ -23,7 +23,7 @@ class GamesController extends BasePageController
|
||||
$ctmp[$ccat['id']] = $ccat;
|
||||
}
|
||||
$category = Category::PC_GAMES;
|
||||
if ($request->has('t') && array_key_exists($request->input('t'), $ctmp)) {
|
||||
if ($request->has('t') && isset($ctmp[$request->input('t')])) {
|
||||
$category = $request->input('t') + 0;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ class GamesController extends BasePageController
|
||||
|
||||
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
|
||||
$ordering = $games->getGamesOrdering();
|
||||
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '';
|
||||
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, true) ? $request->input('ob') : '';
|
||||
$offset = ($page - 1) * config('nntmux.items_per_cover_page');
|
||||
$rslt = $games->getGamesRange($page, $catarray, $offset, config('nntmux.items_per_cover_page'), $orderby, '', (array) $this->userdata->categoryexclusions);
|
||||
$results = $this->paginate($rslt, $rslt[0]->_totalcount ?? 0, config('nntmux.items_per_cover_page'), $page, $request->url(), $request->query());
|
||||
@@ -48,9 +48,9 @@ class GamesController extends BasePageController
|
||||
|
||||
$years = range(1903, date('Y') + 1);
|
||||
rsort($years);
|
||||
$year = ($request->has('year') && \in_array($request->input('year'), $years, false)) ? $request->input('year') : '';
|
||||
$year = ($request->has('year') && \in_array($request->input('year'), $years, true)) ? $request->input('year') : '';
|
||||
|
||||
$genre = ($request->has('genre') && array_key_exists($request->input('genre'), $tmpgnr)) ? $request->input('genre') : '';
|
||||
$genre = ($request->has('genre') && isset($tmpgnr[$request->input('genre')])) ? $request->input('genre') : '';
|
||||
|
||||
if ((int) $category === -1) {
|
||||
$catname = 'All';
|
||||
|
||||
@@ -42,7 +42,7 @@ class MovieController extends BasePageController
|
||||
|
||||
$orderby = $request->input('ob', '');
|
||||
$ordering = $this->movieBrowseService->getMovieOrdering();
|
||||
if (! in_array($orderby, $ordering, false)) {
|
||||
if (! in_array($orderby, $ordering, true)) {
|
||||
$orderby = '';
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class MusicController extends BasePageController
|
||||
}
|
||||
|
||||
$category = $request->has('t') ? $request->input('t') : Category::MUSIC_ROOT;
|
||||
if ($id && \in_array($id, Arr::pluck($mtmp, 'title'), false)) {
|
||||
if ($id && \in_array($id, Arr::pluck($mtmp, 'title'), true)) {
|
||||
$cat = Category::query()
|
||||
->where('title', $id)
|
||||
->where('root_categories_id', '=', Category::MUSIC_ROOT)
|
||||
@@ -43,7 +43,7 @@ class MusicController extends BasePageController
|
||||
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
|
||||
$offset = ($page - 1) * config('nntmux.items_per_cover_page');
|
||||
$ordering = $music->getMusicOrdering();
|
||||
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '';
|
||||
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, true) ? $request->input('ob') : '';
|
||||
|
||||
$musics = [];
|
||||
$rslt = $music->getMusicRange($page, $catarray, $offset, config('nntmux.items_per_cover_page'), $orderby, (array) $this->userdata->categoryexclusions); // @phpstan-ignore argument.type
|
||||
@@ -66,11 +66,11 @@ class MusicController extends BasePageController
|
||||
$musics[] = $result;
|
||||
}
|
||||
|
||||
$genre = ($request->has('genre') && array_key_exists($request->input('genre'), $tmpgnr)) ? $request->input('genre') : '';
|
||||
$genre = ($request->has('genre') && isset($tmpgnr[$request->input('genre')])) ? $request->input('genre') : '';
|
||||
|
||||
$years = range(1950, date('Y') + 1);
|
||||
rsort($years);
|
||||
$year = ($request->has('year') && \in_array($request->input('year'), $years, false)) ? $request->input('year') : '';
|
||||
$year = ($request->has('year') && \in_array($request->input('year'), $years, true)) ? $request->input('year') : '';
|
||||
|
||||
if ((int) $category === -1) {
|
||||
$catname = 'All';
|
||||
|
||||
@@ -182,7 +182,7 @@ class MyShowsController extends BasePageController
|
||||
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
|
||||
$offset = ($page - 1) * config('nntmux.items_per_page');
|
||||
$ordering = $this->releaseBrowseService->getBrowseOrdering();
|
||||
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '';
|
||||
$orderby = $request->has('ob') && \in_array($request->input('ob'), $ordering, true) ? $request->input('ob') : '';
|
||||
$browseCount = $shows ? $shows->count() : 0;
|
||||
|
||||
$rslt = $this->releaseBrowseService->getShowsRange($shows ?? [], $offset, config('nntmux.items_per_page'), $orderby, -1, (array) $this->userdata->categoryexclusions);
|
||||
|
||||
@@ -158,7 +158,7 @@ class ProfileController extends BasePageController
|
||||
// Update theme preference
|
||||
if ($request->has('theme_preference')) {
|
||||
$themeValue = $request->input('theme_preference');
|
||||
if (in_array($themeValue, ['light', 'dark', 'system'])) {
|
||||
if (in_array($themeValue, ['light', 'dark', 'system'], true)) {
|
||||
User::where('id', $userid)->update(['theme_preference' => $themeValue]);
|
||||
}
|
||||
}
|
||||
@@ -167,7 +167,7 @@ class ProfileController extends BasePageController
|
||||
if ($request->has('timezone')) {
|
||||
$timezoneValue = $request->input('timezone');
|
||||
$validTimezones = array_merge(['UTC'], ...array_values(getAvailableTimezones()));
|
||||
if (in_array($timezoneValue, $validTimezones)) {
|
||||
if (in_array($timezoneValue, $validTimezones, true)) {
|
||||
User::where('id', $userid)->update(['timezone' => $timezoneValue]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ class SearchController extends BasePageController
|
||||
}
|
||||
|
||||
$ordering = $this->releaseBrowseService->getBrowseOrdering();
|
||||
$orderBy = ($request->has('ob') && \in_array($request->input('ob'), $ordering, false) ? $request->input('ob') : '');
|
||||
$orderBy = ($request->has('ob') && \in_array($request->input('ob'), $ordering, true) ? $request->input('ob') : '');
|
||||
$page = $request->has('page') && is_numeric($request->input('page')) ? $request->input('page') : 1;
|
||||
$offset = ($page - 1) * config('nntmux.items_per_page');
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ class Invitation extends Model // @phpstan-ignore missingType.iterableValue
|
||||
{
|
||||
return $this->is_active &&
|
||||
$this->expires_at->isFuture() &&
|
||||
is_null($this->used_at);
|
||||
$this->used_at === null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -158,7 +158,7 @@ class Invitation extends Model // @phpstan-ignore missingType.iterableValue
|
||||
*/
|
||||
public function isUsed(): bool
|
||||
{
|
||||
return ! is_null($this->used_at);
|
||||
return $this->used_at !== null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -135,15 +135,11 @@ class UsenetGroup extends Model
|
||||
*/
|
||||
public static function getActiveBackfill(mixed $order): mixed
|
||||
{
|
||||
switch ($order) {
|
||||
case '':
|
||||
case 'normal':
|
||||
return self::query()->where('backfill', '=', 1)->where('last_record', '<>', 0)->orderBy('name')->get();
|
||||
case 'date':
|
||||
return self::query()->where('backfill', '=', 1)->where('last_record', '<>', 0)->orderByDesc('first_record_postdate')->get();
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
return match ($order) {
|
||||
'', 'normal' => self::query()->where('backfill', '=', 1)->where('last_record', '<>', 0)->orderBy('name')->get(),
|
||||
'date' => self::query()->where('backfill', '=', 1)->where('last_record', '<>', 0)->orderByDesc('first_record_postdate')->get(),
|
||||
default => [],
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -1574,7 +1574,7 @@ final class User extends Authenticatable
|
||||
|
||||
$excludedRoots = [];
|
||||
foreach ($categoryPermissions as $permission => $rootId) {
|
||||
if (! in_array($permission, $allowed, false)) {
|
||||
if (! in_array($permission, $allowed, true)) {
|
||||
$excludedRoots[] = $rootId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ final class HeaderParser
|
||||
|
||||
// For part repair, only process missing parts
|
||||
if ($partRepair && $missingParts !== null) {
|
||||
if (! \in_array($header['Number'], $missingParts, false)) {
|
||||
if (! \in_array($header['Number'], $missingParts, true)) {
|
||||
continue;
|
||||
}
|
||||
$headersRepaired[] = $header['Number'];
|
||||
|
||||
@@ -542,7 +542,7 @@ class ConsoleService
|
||||
// Check for existing console entry.
|
||||
$gameCheck = $this->getConsoleInfoByName($gameInfo['title'], $gameInfo['platform']);
|
||||
|
||||
if ($gameCheck === false && \in_array($gameInfo['title'].$gameInfo['platform'], $this->failCache, false)) {
|
||||
if ($gameCheck === false && \in_array($gameInfo['title'].$gameInfo['platform'], $this->failCache, true)) {
|
||||
// Lookup recently failed, no point trying again
|
||||
if ($this->echoOutput) {
|
||||
cli()->info('Cached previous failure. Skipping.');
|
||||
@@ -806,8 +806,8 @@ class ConsoleService
|
||||
{
|
||||
$genreassoc = $this->loadGenres();
|
||||
|
||||
if (\in_array(strtolower($genreName), $genreassoc, false)) {
|
||||
$genreKey = array_search(strtolower($genreName), $genreassoc, false);
|
||||
if (\in_array(strtolower($genreName), $genreassoc, true)) {
|
||||
$genreKey = array_search(strtolower($genreName), $genreassoc, true);
|
||||
} else {
|
||||
$genreKey = Genre::query()->insertGetId(['title' => $genreName, 'type' => GenreService::CONSOLE_TYPE]);
|
||||
}
|
||||
|
||||
@@ -552,8 +552,8 @@ class GamesService
|
||||
$genreName = 'Unknown';
|
||||
}
|
||||
|
||||
if (in_array(strtolower($genreName), $defaultGenres, false)) {
|
||||
$genreKey = array_search(strtolower($genreName), $defaultGenres, false);
|
||||
if (in_array(strtolower($genreName), $defaultGenres, true)) {
|
||||
$genreKey = array_search(strtolower($genreName), $defaultGenres, true);
|
||||
} else {
|
||||
$genreKey = Genre::query()->insertGetId(['title' => $genreName, 'type' => GenreService::GAME_TYPE]);
|
||||
}
|
||||
@@ -664,8 +664,8 @@ class GamesService
|
||||
$defaultGenres = $gen->loadGenres((string) GenreService::GAME_TYPE);
|
||||
$genreName = $game['gamesgenre'] ?? 'Unknown';
|
||||
|
||||
if (in_array(strtolower($genreName), $defaultGenres, false)) {
|
||||
$genreKey = array_search(strtolower($genreName), $defaultGenres, false);
|
||||
if (in_array(strtolower($genreName), $defaultGenres, true)) {
|
||||
$genreKey = array_search(strtolower($genreName), $defaultGenres, true);
|
||||
} else {
|
||||
$genreKey = Genre::query()->insertGetId(['title' => $genreName, 'type' => GenreService::GAME_TYPE]);
|
||||
}
|
||||
|
||||
@@ -252,7 +252,7 @@ class MovieService
|
||||
foreach ($values as $key => $value) {
|
||||
if (! empty($value)) {
|
||||
$found++;
|
||||
if (\in_array($key, ['genre', 'language'], false)) {
|
||||
if (\in_array($key, ['genre', 'language'], true)) {
|
||||
$value = substr($value, 0, 64);
|
||||
}
|
||||
$query += [$key => $value];
|
||||
|
||||
+38
-121
@@ -215,30 +215,15 @@ class MusicService
|
||||
$order = ($orderBy === '') ? 'r.postdate' : $orderBy;
|
||||
$orderArr = explode('_', $order);
|
||||
|
||||
switch ($orderArr[0]) {
|
||||
case 'artist':
|
||||
$orderfield = 'm.artist';
|
||||
break;
|
||||
case 'size':
|
||||
$orderfield = 'r.size';
|
||||
break;
|
||||
case 'files':
|
||||
$orderfield = 'r.totalpart';
|
||||
break;
|
||||
case 'stats':
|
||||
$orderfield = 'r.grabs';
|
||||
break;
|
||||
case 'year':
|
||||
$orderfield = 'm.year';
|
||||
break;
|
||||
case 'genre':
|
||||
$orderfield = 'm.genres_id';
|
||||
break;
|
||||
case 'posted':
|
||||
default:
|
||||
$orderfield = 'r.postdate';
|
||||
break;
|
||||
}
|
||||
$orderfield = match ($orderArr[0]) {
|
||||
'artist' => 'm.artist',
|
||||
'size' => 'r.size',
|
||||
'files' => 'r.totalpart',
|
||||
'stats' => 'r.grabs',
|
||||
'year' => 'm.year',
|
||||
'genre' => 'm.genres_id',
|
||||
default => 'r.postdate',
|
||||
};
|
||||
|
||||
$ordersort = (isset($orderArr[1]) && preg_match('/^asc|desc$/i', $orderArr[1])) ? $orderArr[1] : 'desc';
|
||||
|
||||
@@ -452,7 +437,7 @@ class MusicService
|
||||
// Do a local lookup first
|
||||
$musicCheck = $this->getMusicInfoByName('', $album['name']);
|
||||
|
||||
if ($musicCheck === null && \in_array($album['name'].$album['year'], $this->failCache, false)) {
|
||||
if ($musicCheck === null && \in_array($album['name'].$album['year'], $this->failCache, true)) {
|
||||
// Lookup recently failed, no point trying again
|
||||
if ($this->echooutput) {
|
||||
cli()->headerOver('Cached previous failure. Skipping.');
|
||||
@@ -531,100 +516,32 @@ class MusicService
|
||||
{
|
||||
$str = '';
|
||||
|
||||
// music nodes above mp3 download nodes
|
||||
switch ($nodeId) {
|
||||
case '163420':
|
||||
$str = 'Music Video & Concerts';
|
||||
break;
|
||||
case '30':
|
||||
case '624869011':
|
||||
$str = 'Alternative Rock';
|
||||
break;
|
||||
case '31':
|
||||
case '624881011':
|
||||
$str = 'Blues';
|
||||
break;
|
||||
case '265640':
|
||||
case '624894011':
|
||||
$str = 'Broadway & Vocalists';
|
||||
break;
|
||||
case '173425':
|
||||
case '624899011':
|
||||
$str = "Children's Music";
|
||||
break;
|
||||
case '173429': // christian
|
||||
case '2231705011': // gospel
|
||||
case '624905011': // christian & gospel
|
||||
$str = 'Christian & Gospel';
|
||||
break;
|
||||
case '67204':
|
||||
case '624916011':
|
||||
$str = 'Classic Rock';
|
||||
break;
|
||||
case '85':
|
||||
case '624926011':
|
||||
$str = 'Classical';
|
||||
break;
|
||||
case '16':
|
||||
case '624976011':
|
||||
$str = 'Country';
|
||||
break;
|
||||
case '7': // dance & electronic
|
||||
case '624988011': // dance & dj
|
||||
$str = 'Dance & Electronic';
|
||||
break;
|
||||
case '32':
|
||||
case '625003011':
|
||||
$str = 'Folk';
|
||||
break;
|
||||
case '67207':
|
||||
case '625011011':
|
||||
$str = 'Hard Rock & Metal';
|
||||
break;
|
||||
case '33': // world music
|
||||
case '625021011': // international
|
||||
$str = 'World Music';
|
||||
break;
|
||||
case '34':
|
||||
case '625036011':
|
||||
$str = 'Jazz';
|
||||
break;
|
||||
case '289122':
|
||||
case '625054011':
|
||||
$str = 'Latin Music';
|
||||
break;
|
||||
case '36':
|
||||
case '625070011':
|
||||
$str = 'New Age';
|
||||
break;
|
||||
case '625075011':
|
||||
$str = 'Opera & Vocal';
|
||||
break;
|
||||
case '37':
|
||||
case '625092011':
|
||||
$str = 'Pop';
|
||||
break;
|
||||
case '39':
|
||||
case '625105011':
|
||||
$str = 'R&B';
|
||||
break;
|
||||
case '38':
|
||||
case '625117011':
|
||||
$str = 'Rap & Hip-Hop';
|
||||
break;
|
||||
case '40':
|
||||
case '625129011':
|
||||
$str = 'Rock';
|
||||
break;
|
||||
case '42':
|
||||
case '625144011':
|
||||
$str = 'Soundtracks';
|
||||
break;
|
||||
case '35':
|
||||
case '625061011':
|
||||
$str = 'Miscellaneous';
|
||||
break;
|
||||
}
|
||||
$str = match ($nodeId) {
|
||||
'163420' => 'Music Video & Concerts',
|
||||
'30', '624869011' => 'Alternative Rock',
|
||||
'31', '624881011' => 'Blues',
|
||||
'265640', '624894011' => 'Broadway & Vocalists',
|
||||
'173425', '624899011' => "Children's Music",
|
||||
'173429', '2231705011', '624905011' => 'Christian & Gospel',
|
||||
'67204', '624916011' => 'Classic Rock',
|
||||
'85', '624926011' => 'Classical',
|
||||
'16', '624976011' => 'Country',
|
||||
'7', '624988011' => 'Dance & Electronic',
|
||||
'32', '625003011' => 'Folk',
|
||||
'67207', '625011011' => 'Hard Rock & Metal',
|
||||
'33', '625021011' => 'World Music',
|
||||
'34', '625036011' => 'Jazz',
|
||||
'289122', '625054011' => 'Latin Music',
|
||||
'36', '625070011' => 'New Age',
|
||||
'625075011' => 'Opera & Vocal',
|
||||
'37', '625092011' => 'Pop',
|
||||
'39', '625105011' => 'R&B',
|
||||
'38', '625117011' => 'Rap & Hip-Hop',
|
||||
'40', '625129011' => 'Rock',
|
||||
'42', '625144011' => 'Soundtracks',
|
||||
'35', '625061011' => 'Miscellaneous',
|
||||
default => '',
|
||||
};
|
||||
|
||||
return ($str !== '') ? $str : false;
|
||||
}
|
||||
@@ -666,8 +583,8 @@ class MusicService
|
||||
$genreName = $album['genre'] ?? '';
|
||||
|
||||
if (! empty($genreName)) {
|
||||
if (\in_array(strtolower($genreName), $defaultGenres, false)) {
|
||||
$genreKey = array_search(strtolower($genreName), $defaultGenres, false);
|
||||
if (\in_array(strtolower($genreName), $defaultGenres, true)) {
|
||||
$genreKey = array_search(strtolower($genreName), $defaultGenres, true);
|
||||
} else {
|
||||
$genreKey = Genre::query()->insertGetId(['title' => $genreName, 'type' => GenreService::MUSIC_TYPE]);
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ class Par2Processor
|
||||
|
||||
// Only get a new name if the category is OTHER.
|
||||
$foundName = true;
|
||||
if (\in_array((int) $query['categories_id'], Category::OTHERS_GROUP, false)) {
|
||||
if (\in_array((int) $query['categories_id'], Category::OTHERS_GROUP, true)) {
|
||||
$foundName = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -531,9 +531,9 @@ class PopulateAniListService
|
||||
$title = $edge['node']['title']['english'] ?? $edge['node']['title']['romaji'] ?? '';
|
||||
$id = $edge['node']['id'] ?? '';
|
||||
|
||||
if (in_array($relationType, ['SEQUEL', 'PREQUEL', 'SIDE_STORY', 'PARENT', 'SPIN_OFF'])) {
|
||||
if (in_array($relationType, ['SEQUEL', 'PREQUEL', 'SIDE_STORY', 'PARENT', 'SPIN_OFF'], true)) {
|
||||
$relatedItems[] = $title.' ('.$id.')';
|
||||
} elseif (in_array($relationType, ['ALTERNATIVE', 'CHARACTER'])) {
|
||||
} elseif (in_array($relationType, ['ALTERNATIVE', 'CHARACTER'], true)) {
|
||||
$similarItems[] = $title.' ('.$id.')';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,19 +68,14 @@ class BackfillRunner extends BaseRunner
|
||||
$maxMessages = (int) Settings::settingValue('maxmssgs');
|
||||
$threads = (int) Settings::settingValue('backfillthreads');
|
||||
|
||||
$orderby = 'ORDER BY a.last_record ASC';
|
||||
switch ($backfill_order) {
|
||||
case 1: $orderby = 'ORDER BY first_record_postdate DESC';
|
||||
break;
|
||||
case 2: $orderby = 'ORDER BY first_record_postdate ASC';
|
||||
break;
|
||||
case 3: $orderby = 'ORDER BY name ASC';
|
||||
break;
|
||||
case 4: $orderby = 'ORDER BY name DESC';
|
||||
break;
|
||||
case 5: $orderby = 'ORDER BY a.last_record DESC';
|
||||
break;
|
||||
}
|
||||
$orderby = match ($backfill_order) {
|
||||
1 => 'ORDER BY first_record_postdate DESC',
|
||||
2 => 'ORDER BY first_record_postdate ASC',
|
||||
3 => 'ORDER BY name ASC',
|
||||
4 => 'ORDER BY name DESC',
|
||||
5 => 'ORDER BY a.last_record DESC',
|
||||
default => 'ORDER BY a.last_record ASC',
|
||||
};
|
||||
|
||||
$backfilldays = '0';
|
||||
if ($backfill_days === 1) {
|
||||
|
||||
@@ -800,7 +800,7 @@ abstract class AbstractTvProvider extends BaseVideoProvider
|
||||
}
|
||||
|
||||
foreach ($required as $req) {
|
||||
if (! \in_array($type, ['tmdbS', 'tmdbE', 'traktS', 'traktE'], false)) {
|
||||
if (! \in_array($type, ['tmdbS', 'tmdbE', 'traktS', 'traktE'], true)) {
|
||||
if (! isset($array->$req)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -207,17 +207,14 @@ class UpdatePerformanceHelper
|
||||
return -1;
|
||||
}
|
||||
|
||||
$last = strtolower($limit[strlen($limit) - 1]);
|
||||
$value = (int) $limit;
|
||||
$last = strtolower($limit[-1]);
|
||||
|
||||
switch ($last) {
|
||||
case 'g':
|
||||
$value *= 1024;
|
||||
case 'm':
|
||||
$value *= 1024;
|
||||
case 'k':
|
||||
$value *= 1024;
|
||||
}
|
||||
$value = match ($last) {
|
||||
'g' => (int) $limit * 1024 * 1024 * 1024,
|
||||
'm' => (int) $limit * 1024 * 1024,
|
||||
'k' => (int) $limit * 1024,
|
||||
default => (int) $limit,
|
||||
};
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
@@ -34,11 +34,11 @@ class ApiTransformer extends TransformerAbstract
|
||||
|
||||
$categoriesId = $this->getValue($release, 'categories_id');
|
||||
|
||||
if (\in_array($categoriesId, Category::MOVIES_GROUP, false)) {
|
||||
if (\in_array($categoriesId, Category::MOVIES_GROUP, true)) {
|
||||
return array_merge($data, $this->getMovieSpecificData($release));
|
||||
}
|
||||
|
||||
if (\in_array($categoriesId, Category::TV_GROUP, false)) {
|
||||
if (\in_array($categoriesId, Category::TV_GROUP, true)) {
|
||||
return array_merge($data, $this->getTvSpecificData($release));
|
||||
}
|
||||
|
||||
|
||||
@@ -43,12 +43,12 @@ class DetailsTransformer extends TransformerAbstract
|
||||
];
|
||||
|
||||
// Add movie-specific data
|
||||
if (\in_array($release->categories_id, Category::MOVIES_GROUP, false)) {
|
||||
if (\in_array($release->categories_id, Category::MOVIES_GROUP, true)) {
|
||||
$data['imdbid'] = $release->imdbid;
|
||||
}
|
||||
|
||||
// Add TV-specific data
|
||||
if (\in_array($release->categories_id, Category::TV_GROUP, false)) {
|
||||
if (\in_array($release->categories_id, Category::TV_GROUP, true)) {
|
||||
$data['tvairdate'] = $release->firstaired;
|
||||
$data['tvdbid'] = $release->tvdb;
|
||||
$data['traktid'] = $release->trakt;
|
||||
|
||||
+2
-1
@@ -26,6 +26,7 @@ return static function (RectorConfig $rectorConfig): void {
|
||||
// define sets of rules
|
||||
$rectorConfig->sets([
|
||||
LaravelSetList::LARAVEL_100,
|
||||
\Rector\Set\ValueObject\SetList::PHP_82,
|
||||
\Rector\Set\ValueObject\SetList::PHP_84,
|
||||
\Rector\Set\ValueObject\SetList::CODE_QUALITY,
|
||||
]);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user