mirror of
https://github.com/lifegpc/eh-downloader.git
synced 2026-06-06 05:38:44 +08:00
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { Task, TaskType, TaskUpdateMeiliSearchDataProgress } 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.");
|
|
await manager.meilisearch.removeAllGallery();
|
|
const progress: TaskUpdateMeiliSearchDataProgress = {
|
|
total_gallery: 0,
|
|
updated_gallery: 0,
|
|
};
|
|
const sendEvent = () => {
|
|
manager.dispatchTaskProgressEvent(
|
|
TaskType.UpdateMeiliSearchData,
|
|
task.id,
|
|
progress,
|
|
);
|
|
};
|
|
if (task.gid != 0) {
|
|
progress.total_gallery = 1;
|
|
sendEvent();
|
|
await manager.meilisearch.updateGallery(task.gid);
|
|
progress.updated_gallery = 1;
|
|
sendEvent();
|
|
} else {
|
|
progress.total_gallery = manager.db.get_gallery_count();
|
|
sendEvent();
|
|
let i = manager.db.get_gids();
|
|
let offset = 0;
|
|
while (i.length) {
|
|
await manager.meilisearch.updateGallery(...i);
|
|
offset += i.length;
|
|
progress.updated_gallery = offset;
|
|
sendEvent();
|
|
i = manager.db.get_gids(offset);
|
|
}
|
|
}
|
|
return task;
|
|
}
|