Small opcode optimizations

This commit is contained in:
DariusIII
2026-02-24 16:40:26 +01:00
parent 85ea45ad62
commit ec98395cde
29 changed files with 176 additions and 378 deletions
+57 -114
View File
@@ -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,
};
}
/**
+1 -1
View File
@@ -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'],
+2 -2
View File
@@ -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();
+19 -70
View File
@@ -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 =
+2 -2
View File
@@ -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');
+1 -1
View File
@@ -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';
+1 -1
View File
@@ -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}");
+4 -4
View File
@@ -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';
+1 -1
View File
@@ -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 = '';
}
+4 -4
View File
@@ -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';
+1 -1
View File
@@ -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);
+2 -2
View File
@@ -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]);
}
}
+1 -1
View File
@@ -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');
+2 -2
View File
@@ -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;
}
/**
+5 -9
View File
@@ -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
View File
@@ -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;
}
}
+1 -1
View File
@@ -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'];
+3 -3
View File
@@ -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]);
}
+4 -4
View File
@@ -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]);
}
+1 -1
View File
@@ -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
View File
@@ -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]);
}
+1 -1
View File
@@ -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;
}
+2 -2
View File
@@ -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.')';
}
}
+8 -13
View File
@@ -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;
}
+7 -10
View File
@@ -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;
}
+2 -2
View File
@@ -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));
}
+2 -2
View File
@@ -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
View File
@@ -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,
]);
};