From 81d16d619a57b622b0866c1e0d5738f0e84cc938 Mon Sep 17 00:00:00 2001 From: Buster Neece Date: Sun, 29 Jan 2023 08:15:26 -0600 Subject: [PATCH] More Meilisearch infrastructure work. --- config/messagequeue.php | 3 + config/services.php | 1 + docker-compose.sample.yml | 2 - frontend/vue/components/Public/OnDemand.vue | 38 +++- .../Api/Stations/Files/BatchAction.php | 25 ++- .../Api/Stations/FilesController.php | 18 ++ .../Api/Stations/OnDemand/ListAction.php | 129 ++++------- .../Api/Stations/PlaylistsController.php | 51 +++++ .../Frontend/PublicPages/OnDemandAction.php | 2 +- src/Media/BatchUtilities.php | 52 ++++- src/Message/AddMediaToSearchIndexMessage.php | 33 --- src/Message/Meilisearch/AddMediaMessage.php | 19 ++ .../Meilisearch/UpdatePlaylistsMessage.php | 16 ++ src/Paginator.php | 37 ++-- src/Service/Meilisearch.php | 8 +- src/Service/Meilisearch/Index.php | 209 +++++++++++++----- src/Service/Meilisearch/MessageHandler.php | 65 ++++++ src/Service/Meilisearch/PaginatorAdapter.php | 60 +++++ src/Sync/Task/CheckFolderPlaylistsTask.php | 16 +- src/Sync/Task/UpdateMeilisearchIndex.php | 62 ++++-- 20 files changed, 620 insertions(+), 226 deletions(-) delete mode 100644 src/Message/AddMediaToSearchIndexMessage.php create mode 100644 src/Message/Meilisearch/AddMediaMessage.php create mode 100644 src/Message/Meilisearch/UpdatePlaylistsMessage.php create mode 100644 src/Service/Meilisearch/MessageHandler.php create mode 100644 src/Service/Meilisearch/PaginatorAdapter.php diff --git a/config/messagequeue.php b/config/messagequeue.php index eec78b259..a4924bcea 100644 --- a/config/messagequeue.php +++ b/config/messagequeue.php @@ -20,5 +20,8 @@ return [ Message\DispatchWebhookMessage::class => App\Webhook\Dispatcher::class, Message\TestWebhookMessage::class => App\Webhook\Dispatcher::class, + Message\Meilisearch\AddMediaMessage::class => App\Service\Meilisearch\MessageHandler::class, + Message\Meilisearch\UpdatePlaylistsMessage::class => App\Service\Meilisearch\MessageHandler::class, + Mailer\Messenger\SendEmailMessage::class => Mailer\Messenger\MessageHandler::class, ]; diff --git a/config/services.php b/config/services.php index 0e7b63a1d..899b2fbfa 100644 --- a/config/services.php +++ b/config/services.php @@ -125,6 +125,7 @@ return [ // $config->setSQLLogger(new Doctrine\DBAL\Logging\EchoSQLLogger); $config->addCustomNumericFunction('RAND', DoctrineExtensions\Query\Mysql\Rand::class); + $config->addCustomStringFunction('FIELD', DoctrineExtensions\Query\Mysql\Field::class); if (!Doctrine\DBAL\Types\Type::hasType('carbon_immutable')) { Doctrine\DBAL\Types\Type::addType('carbon_immutable', Carbon\Doctrine\CarbonImmutableType::class); diff --git a/docker-compose.sample.yml b/docker-compose.sample.yml index 16d0dc4dc..c5e10c068 100644 --- a/docker-compose.sample.yml +++ b/docker-compose.sample.yml @@ -191,7 +191,6 @@ services: - stereo_tool_install:/var/azuracast/servers/stereo_tool - geolite_install:/var/azuracast/geoip - sftpgo_data:/var/azuracast/sftpgo/persist - - meilisearch_data:/var/azuracast/meilisearch/persist - backups:/var/azuracast/backups - acme:/var/azuracast/acme - db_data:/var/lib/mysql @@ -222,7 +221,6 @@ volumes: stereo_tool_install: { } geolite_install: { } sftpgo_data: { } - meilisearch_data: { } station_data: { } www_uploads: { } backups: { } diff --git a/frontend/vue/components/Public/OnDemand.vue b/frontend/vue/components/Public/OnDemand.vue index f7d3e53db..7c739d1b0 100644 --- a/frontend/vue/components/Public/OnDemand.vue +++ b/frontend/vue/components/Public/OnDemand.vue @@ -58,9 +58,9 @@ -