false, 'all' => true, 'anime' => false, 'book' => false, 'console' => false, 'games' => false, 'movies' => false, 'music' => false, 'nfo' => true, 'tv' => false, 'xxx' => false, ]; /** * Execute the console command. */ public function handle(): int { $type = $this->argument('type'); $echoArg = $this->argument('echo'); $echo = ($echoArg === null || $echoArg === 'true'); if (! array_key_exists($type, $this->validTypes)) { $this->error("Invalid type: {$type}"); $this->showHelp(); return self::FAILURE; } try { $nntp = $this->validTypes[$type] ? $this->getNntp() : null; $postProcess = new PostProcess(); match ($type) { 'all' => $postProcess->processAll($nntp), 'nfo' => $postProcess->processNfos($nntp), 'movies' => $postProcess->processMovies(), 'music' => $postProcess->processMusic(), 'console' => $postProcess->processConsoles(), 'games' => $postProcess->processGames(), 'book' => $postProcess->processBooks(), 'anime' => $postProcess->processAnime(), 'tv' => $postProcess->processTv(), 'xxx' => $postProcess->processXXX(), 'additional' => $postProcess->processAdditional(), default => throw new \Exception("Unhandled type: {$type}"), }; return self::SUCCESS; } catch (\Throwable $e) { $this->error($e->getMessage()); return self::FAILURE; } } /** * Show help text. */ private function showHelp(): void { $this->line(''); $this->line('Available types:'); $this->line(' all - Does all the types of post processing'); $this->line(' nfo - Processes NFO files'); $this->line(' movies - Processes movies'); $this->line(' music - Processes music'); $this->line(' console - Processes console games'); $this->line(' games - Processes games'); $this->line(' book - Processes books'); $this->line(' anime - Processes anime'); $this->line(' tv - Processes tv'); $this->line(' xxx - Processes xxx'); $this->line(' additional - Processes previews/mediainfo/etc...'); } /** * Get NNTP connection. */ private function getNntp(): NNTP { $nntp = new NNTP; if ((config('nntmux_nntp.use_alternate_nntp_server') === true ? $nntp->doConnect(false, true) : $nntp->doConnect()) !== true) { throw new \Exception('Unable to connect to usenet.'); } return $nntp; } }