argument('groupId'); try { $releases = new ProcessReleases; if (is_numeric($groupId)) { $this->processReleasesForGroup($releases, $groupId); } else { $this->processReleasesForGroup($releases, ''); $this->runPostProcessingTasks($releases); } return self::SUCCESS; } catch (\Throwable $e) { Log::error($e->getTraceAsString()); $this->error($e->getMessage()); return self::FAILURE; } } /** * Create / process releases for a groupID. */ private function processReleasesForGroup(ProcessReleases $releases, string $groupID): void { $releaseCreationLimit = Settings::settingValue('maxnzbsprocessed') !== '' ? (int) Settings::settingValue('maxnzbsprocessed') : 1000; $releases->processIncompleteCollections($groupID); $releases->processCollectionSizes($groupID); $releases->deleteUnwantedCollections($groupID); do { $releasesCount = $releases->createReleases($groupID); $nzbFilesAdded = $releases->createNZBs($groupID); } while ($releaseCreationLimit <= $releasesCount['added'] + $releasesCount['dupes'] || $nzbFilesAdded >= $releaseCreationLimit); $releases->deleteCollections($groupID); } /** * Run post-processing tasks after all group releases are processed. */ private function runPostProcessingTasks(ProcessReleases $releases): void { $releases->deletedReleasesByGroup(); $releases->deleteReleases(); $releases->categorizeReleases(2); } }