2020-08-28 10:32:33 +00:00
|
|
|
<?php
|
2020-10-14 22:19:31 +00:00
|
|
|
|
2020-08-28 10:32:33 +00:00
|
|
|
namespace App\Sync;
|
|
|
|
|
2020-09-20 12:07:09 +00:00
|
|
|
use App\Event\GetSyncTasks;
|
2020-08-28 10:32:33 +00:00
|
|
|
use Psr\Container\ContainerInterface;
|
|
|
|
|
2020-11-12 21:30:02 +00:00
|
|
|
class TaskLocator
|
2020-08-28 10:32:33 +00:00
|
|
|
{
|
|
|
|
protected ContainerInterface $di;
|
|
|
|
|
|
|
|
protected array $tasks;
|
|
|
|
|
2020-12-10 22:46:03 +00:00
|
|
|
public function __construct(ContainerInterface $di)
|
2020-08-28 10:32:33 +00:00
|
|
|
{
|
|
|
|
$this->di = $di;
|
2020-12-10 22:46:03 +00:00
|
|
|
|
|
|
|
$this->tasks = [
|
|
|
|
GetSyncTasks::SYNC_NOWPLAYING => [
|
|
|
|
Task\BuildQueueTask::class,
|
|
|
|
Task\NowPlayingTask::class,
|
|
|
|
Task\ReactivateStreamerTask::class,
|
|
|
|
],
|
|
|
|
GetSyncTasks::SYNC_SHORT => [
|
|
|
|
Task\CheckRequests::class,
|
|
|
|
Task\RunBackupTask::class,
|
|
|
|
Task\CleanupRelaysTask::class,
|
|
|
|
],
|
|
|
|
GetSyncTasks::SYNC_MEDIUM => [
|
|
|
|
Task\CheckMediaTask::class,
|
|
|
|
Task\CheckFolderPlaylistsTask::class,
|
|
|
|
Task\CheckUpdatesTask::class,
|
|
|
|
],
|
|
|
|
GetSyncTasks::SYNC_LONG => [
|
|
|
|
Task\RunAnalyticsTask::class,
|
|
|
|
Task\RunAutomatedAssignmentTask::class,
|
2021-02-28 02:50:45 +00:00
|
|
|
Task\CleanupLoginTokensTask::class,
|
2020-12-10 22:46:03 +00:00
|
|
|
Task\CleanupHistoryTask::class,
|
|
|
|
Task\CleanupStorageTask::class,
|
|
|
|
Task\RotateLogsTask::class,
|
|
|
|
Task\UpdateGeoLiteTask::class,
|
|
|
|
],
|
|
|
|
];
|
2020-08-28 10:32:33 +00:00
|
|
|
}
|
|
|
|
|
2020-11-12 21:30:02 +00:00
|
|
|
public function __invoke(GetSyncTasks $event): void
|
2020-09-20 12:07:09 +00:00
|
|
|
{
|
|
|
|
$type = $event->getType();
|
2020-08-28 10:32:33 +00:00
|
|
|
if (!isset($this->tasks[$type])) {
|
2020-09-20 12:07:09 +00:00
|
|
|
return;
|
2020-08-28 10:32:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
$taskClasses = $this->tasks[$type];
|
|
|
|
foreach ($taskClasses as $taskClass) {
|
2020-09-20 12:07:09 +00:00
|
|
|
$event->addTask($this->di->get($taskClass));
|
2020-08-28 10:32:33 +00:00
|
|
|
}
|
|
|
|
}
|
2020-10-14 22:19:31 +00:00
|
|
|
}
|