Add meiliserach server support

Fix GalleryMetadata contains escaped html data
This commit is contained in:
2023-06-14 11:07:25 +08:00
parent d78276fc62
commit 0a6dc6ad2b
14 changed files with 450 additions and 29 deletions

View File

@@ -109,6 +109,11 @@ export async function download_task(
const gmeta = gdatas.convert(gdata);
db.add_gmeta(gmeta);
await db.add_gtag(task.gid, new Set(gdata.tags));
if (manager.meilisearch) {
manager.meilisearch.target.dispatchEvent(
new CustomEvent("gallery_update", { detail: gmeta.gid }),
);
}
const base_path = join(cfg.base, task.gid.toString());
await sure_dir(base_path);
const m = new DownloadManager(cfg, abort, force_abort, task, manager);

View File

@@ -0,0 +1,21 @@
import { Task } from "../task.ts";
import { TaskManager } from "../task_manager.ts";
export async function update_meili_search_data(
task: Task,
manager: TaskManager,
) {
if (!manager.meilisearch) throw Error("MeiliServer not found.");
if (task.gid !== 0) {
await manager.meilisearch.updateGallery(task.gid);
} else {
let i = manager.db.get_gids();
let offset = 0;
while (i.length) {
await manager.meilisearch.updateGallery(...i);
offset += i.length;
i = manager.db.get_gids(offset);
}
}
return task;
}