diff --git a/app/Console/Commands/DeleteReleases.php b/app/Console/Commands/DeleteReleases.php index 28d9febcb..486fe893a 100644 --- a/app/Console/Commands/DeleteReleases.php +++ b/app/Console/Commands/DeleteReleases.php @@ -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, + }; } /** diff --git a/app/Console/Commands/GroupsUpdate.php b/app/Console/Commands/GroupsUpdate.php index c672501ab..dbf73419a 100644 --- a/app/Console/Commands/GroupsUpdate.php +++ b/app/Console/Commands/GroupsUpdate.php @@ -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'], diff --git a/app/Console/Commands/UpdateNNTmuxDB.php b/app/Console/Commands/UpdateNNTmuxDB.php index a966335c7..3bfe5c10d 100644 --- a/app/Console/Commands/UpdateNNTmuxDB.php +++ b/app/Console/Commands/UpdateNNTmuxDB.php @@ -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(); diff --git a/app/Extensions/helper/helpers.php b/app/Extensions/helper/helpers.php index d8f2c0e6a..d1e6e8f38 100644 --- a/app/Extensions/helper/helpers.php +++ b/app/Extensions/helper/helpers.php @@ -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 = diff --git a/app/Http/Controllers/AdultController.php b/app/Http/Controllers/AdultController.php index 6f5910e40..99138ed83 100644 --- a/app/Http/Controllers/AdultController.php +++ b/app/Http/Controllers/AdultController.php @@ -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'); diff --git a/app/Http/Controllers/ConsoleController.php b/app/Http/Controllers/ConsoleController.php index e836f806a..945220f97 100644 --- a/app/Http/Controllers/ConsoleController.php +++ b/app/Http/Controllers/ConsoleController.php @@ -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'; diff --git a/app/Http/Controllers/CoverController.php b/app/Http/Controllers/CoverController.php index bbff32d8e..47e0fafda 100644 --- a/app/Http/Controllers/CoverController.php +++ b/app/Http/Controllers/CoverController.php @@ -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}"); diff --git a/app/Http/Controllers/GamesController.php b/app/Http/Controllers/GamesController.php index 08f13d1ce..c50a90f9b 100644 --- a/app/Http/Controllers/GamesController.php +++ b/app/Http/Controllers/GamesController.php @@ -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'; diff --git a/app/Http/Controllers/MovieController.php b/app/Http/Controllers/MovieController.php index cdb3d0d5b..aec7dda44 100644 --- a/app/Http/Controllers/MovieController.php +++ b/app/Http/Controllers/MovieController.php @@ -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 = ''; } diff --git a/app/Http/Controllers/MusicController.php b/app/Http/Controllers/MusicController.php index fcdca6d19..bf726a5ec 100644 --- a/app/Http/Controllers/MusicController.php +++ b/app/Http/Controllers/MusicController.php @@ -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'; diff --git a/app/Http/Controllers/MyShowsController.php b/app/Http/Controllers/MyShowsController.php index ca5ba100e..d31a7ca1f 100644 --- a/app/Http/Controllers/MyShowsController.php +++ b/app/Http/Controllers/MyShowsController.php @@ -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); diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 7fceb95d7..31e81e5a7 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -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]); } } diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index ed8e27173..ac801c4c6 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -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'); diff --git a/app/Models/Invitation.php b/app/Models/Invitation.php index 3c1646f4d..21cbe6da6 100644 --- a/app/Models/Invitation.php +++ b/app/Models/Invitation.php @@ -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; } /** diff --git a/app/Models/UsenetGroup.php b/app/Models/UsenetGroup.php index 63ac05e13..308ef67ae 100644 --- a/app/Models/UsenetGroup.php +++ b/app/Models/UsenetGroup.php @@ -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 => [], + }; } /** diff --git a/app/Models/User.php b/app/Models/User.php index fafcf62a6..11a70f051 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -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; } } diff --git a/app/Services/Binaries/HeaderParser.php b/app/Services/Binaries/HeaderParser.php index eace871b6..2e2679494 100644 --- a/app/Services/Binaries/HeaderParser.php +++ b/app/Services/Binaries/HeaderParser.php @@ -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']; diff --git a/app/Services/ConsoleService.php b/app/Services/ConsoleService.php index 12aa383af..47339a8e3 100644 --- a/app/Services/ConsoleService.php +++ b/app/Services/ConsoleService.php @@ -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]); } diff --git a/app/Services/GamesService.php b/app/Services/GamesService.php index 7c6e0c33c..a5d592344 100644 --- a/app/Services/GamesService.php +++ b/app/Services/GamesService.php @@ -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]); } diff --git a/app/Services/MovieService.php b/app/Services/MovieService.php index 533189de8..750fbc754 100644 --- a/app/Services/MovieService.php +++ b/app/Services/MovieService.php @@ -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]; diff --git a/app/Services/MusicService.php b/app/Services/MusicService.php index 21de09d05..b42507fe9 100644 --- a/app/Services/MusicService.php +++ b/app/Services/MusicService.php @@ -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]); } diff --git a/app/Services/Par2Processor.php b/app/Services/Par2Processor.php index 09cef10df..95f4c235a 100644 --- a/app/Services/Par2Processor.php +++ b/app/Services/Par2Processor.php @@ -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; } diff --git a/app/Services/PopulateAniListService.php b/app/Services/PopulateAniListService.php index 3e5bf43aa..55f89f361 100644 --- a/app/Services/PopulateAniListService.php +++ b/app/Services/PopulateAniListService.php @@ -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.')'; } } diff --git a/app/Services/Runners/BackfillRunner.php b/app/Services/Runners/BackfillRunner.php index 3c570ae60..6ec4487d9 100644 --- a/app/Services/Runners/BackfillRunner.php +++ b/app/Services/Runners/BackfillRunner.php @@ -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) { diff --git a/app/Services/TvProcessing/Providers/AbstractTvProvider.php b/app/Services/TvProcessing/Providers/AbstractTvProvider.php index a09cb28f5..fdb17559a 100644 --- a/app/Services/TvProcessing/Providers/AbstractTvProvider.php +++ b/app/Services/TvProcessing/Providers/AbstractTvProvider.php @@ -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; } diff --git a/app/Support/UpdatePerformanceHelper.php b/app/Support/UpdatePerformanceHelper.php index 0f16a6632..d0663ddb8 100644 --- a/app/Support/UpdatePerformanceHelper.php +++ b/app/Support/UpdatePerformanceHelper.php @@ -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; } diff --git a/app/Transformers/ApiTransformer.php b/app/Transformers/ApiTransformer.php index 868ce3e38..0a803462f 100644 --- a/app/Transformers/ApiTransformer.php +++ b/app/Transformers/ApiTransformer.php @@ -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)); } diff --git a/app/Transformers/DetailsTransformer.php b/app/Transformers/DetailsTransformer.php index 78079633d..a55ea9164 100644 --- a/app/Transformers/DetailsTransformer.php +++ b/app/Transformers/DetailsTransformer.php @@ -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; diff --git a/rector.php b/rector.php index 76764f88c..9b8d14272 100644 --- a/rector.php +++ b/rector.php @@ -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, ]); };