get('Import.queue') ?? []; if (! is_array($podcastImportsQueue)) { return []; } if ($podcastHandle !== null) { $podcastImportsQueue = array_filter( $podcastImportsQueue, static fn ($importTask): bool => $importTask->handle === $podcastHandle ); } usort($podcastImportsQueue, static function (PodcastImportTask $a, PodcastImportTask $b): int { if ($a->status === $b->status) { return $a->created_at->isAfter($b->created_at) ? -1 : 1; } if ($a->status === TaskStatus::Running) { return -1; } if ($a->status === TaskStatus::Queued && $b->status !== TaskStatus::Running) { return -1; } return $a->created_at->isAfter($b->created_at) ? -1 : 1; }); return array_values($podcastImportsQueue); } }