diff --git a/page/GalleryPage.ts b/page/GalleryPage.ts index 2e7eba5..c32495c 100644 --- a/page/GalleryPage.ts +++ b/page/GalleryPage.ts @@ -1,4 +1,5 @@ import { DOMParser, Element } from "deno_dom/deno-dom-wasm-noinit.ts"; +import { extname } from "std/path/mod.ts"; import { Client } from "../client.ts"; import { EhFile, PMeta } from "../db.ts"; import { initDOMParser, map, parse_bool } from "../utils.ts"; @@ -75,6 +76,15 @@ class Image { get page_token() { return this.base.token; } + get sampled_name() { + const name = this.data?.name; + if (name) return name; + const n = this.base.name; + const e = extname(n); + const b = n.slice(0, n.length - e.length); + if (n === ".gif") return `${b}.gif`; + return `${b}.jpg`; + } get src() { return this.data?.img_url; } diff --git a/page/MPVPage.ts b/page/MPVPage.ts index 895889f..f32ea1a 100644 --- a/page/MPVPage.ts +++ b/page/MPVPage.ts @@ -1,4 +1,5 @@ import { DOMParser } from "deno_dom/deno-dom-wasm-noinit.ts"; +import { extname } from "std/path/mod.ts"; import { Client } from "../client.ts"; import { initDOMParser } from "../utils.ts"; import { EhFile, PMeta } from "../db.ts"; @@ -122,6 +123,13 @@ class MPVImage { get page_token() { return this.base.k; } + get sampled_name() { + const n = this.base.n; + const e = extname(n); + const b = n.slice(0, n.length - e.length); + if (n === ".gif") return `${b}.gif`; + return `${b}.jpg`; + } get src() { return this.data?.i; } diff --git a/tasks/download.ts b/tasks/download.ts index 5e89bde..0ed71a7 100644 --- a/tasks/download.ts +++ b/tasks/download.ts @@ -106,6 +106,7 @@ interface Image { is_original: boolean | undefined; name: string; page_token: string; + sampled_name: string; get_file(path: string): EhFile | undefined; get_original_file(path: string): EhFile | undefined; load(): Promise; @@ -222,7 +223,10 @@ export async function download_task( if (pmeta) db.add_pmeta(pmeta); const download_original = download_original_img && !i.is_original; - let path = resolve(join(base_path, i.name)); + const is_sampled = !download_original_img && !i.is_original; + let path = resolve( + join(base_path, is_sampled ? i.sampled_name : i.name), + ); if (names[i.name] > 1) { path = add_suffix_to_path(path, i.page_token); console.log("Changed path to", path);