mirror of
https://github.com/lifegpc/eh-downloader.git
synced 2026-06-06 05:38:44 +08:00
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { Task, TaskFixGalleryPageProgress, TaskType } from "../task.ts";
|
|
import { TaskManager } from "../task_manager.ts";
|
|
import { asyncForEach } from "../utils.ts";
|
|
|
|
export async function fix_gallery_page(t: Task, m: TaskManager) {
|
|
const p: TaskFixGalleryPageProgress = {
|
|
total_gallery: m.db.get_gallery_count(),
|
|
checked_gallery: 0,
|
|
};
|
|
const sendEvent = () => {
|
|
m.dispatchTaskProgressEvent(TaskType.FixGalleryPage, t.id, p);
|
|
};
|
|
sendEvent();
|
|
let offset = 0;
|
|
let gids = m.db.get_gids(offset);
|
|
while (gids.length) {
|
|
await asyncForEach(gids, async (gid) => {
|
|
const gmeta = m.db.get_gmeta_by_gid(gid);
|
|
if (!gmeta) return;
|
|
const count = m.db.get_pmeta_count(gid);
|
|
if (gmeta.filecount != count) {
|
|
await m.add_download_task(gid, gmeta.token);
|
|
}
|
|
p.checked_gallery += 1;
|
|
sendEvent();
|
|
});
|
|
offset += gids.length;
|
|
gids = m.db.get_gids(offset);
|
|
}
|
|
return t;
|
|
}
|