diff --git a/fresh.gen.ts b/fresh.gen.ts index 9bbb906..6e8a294 100644 --- a/fresh.gen.ts +++ b/fresh.gen.ts @@ -24,6 +24,8 @@ import * as $api_status from "./routes/api/status.ts"; import * as $api_tag_id_ from "./routes/api/tag/[id].ts"; import * as $api_tag_rows from "./routes/api/tag/rows.ts"; import * as $api_task from "./routes/api/task.ts"; +import * as $api_task_download_cfg from "./routes/api/task/download_cfg.ts"; +import * as $api_task_export_zip_cfg from "./routes/api/task/export_zip_cfg.ts"; import * as $api_thumbnail_id_ from "./routes/api/thumbnail/[id].ts"; import * as $api_token from "./routes/api/token.ts"; import * as $api_user from "./routes/api/user.ts"; @@ -62,6 +64,8 @@ const manifest = { "./routes/api/tag/[id].ts": $api_tag_id_, "./routes/api/tag/rows.ts": $api_tag_rows, "./routes/api/task.ts": $api_task, + "./routes/api/task/download_cfg.ts": $api_task_download_cfg, + "./routes/api/task/export_zip_cfg.ts": $api_task_export_zip_cfg, "./routes/api/thumbnail/[id].ts": $api_thumbnail_id_, "./routes/api/token.ts": $api_token, "./routes/api/user.ts": $api_user, diff --git a/routes/api/_middleware.ts b/routes/api/_middleware.ts index f5d0422..3c8b11e 100644 --- a/routes/api/_middleware.ts +++ b/routes/api/_middleware.ts @@ -95,7 +95,11 @@ export async function handler(req: Request, ctx: FreshContext) { "Set-Cookie", `token=${t.token}; Expires=${t.expired.toUTCString()}${ t.http_only ? "; HttpOnly" : "" - }${t.secure ? "; SameSite=None; Secure" : ""}; Path=/api`, + }${ + t.secure + ? "; SameSite=None; Secure" + : "" + }; Path=/api`, ); } catch { null; diff --git a/routes/api/task/download_cfg.ts b/routes/api/task/download_cfg.ts new file mode 100644 index 0000000..c960850 --- /dev/null +++ b/routes/api/task/download_cfg.ts @@ -0,0 +1,25 @@ +import { Handlers } from "$fresh/server.ts"; +import { User, UserPermission } from "../../../db.ts"; +import { get_task_manager } from "../../../server.ts"; +import { return_data, return_error } from "../../../server/utils.ts"; +import type { DownloadConfig } from "../../../tasks/download.ts"; + +export const handler: Handlers = { + GET(_req, ctx) { + const user = ctx.state.user; + if ( + user && !user.is_admin && + !(user.permissions & UserPermission.ManageTasks) + ) { + return return_error(403, "Permission denied."); + } + const m = get_task_manager(); + return return_data({ + download_original_img: m.cfg.download_original_img, + max_download_img_count: m.cfg.max_download_img_count, + max_retry_count: m.cfg.max_retry_count, + mpv: m.cfg.mpv, + remove_previous_gallery: m.cfg.remove_previous_gallery, + }); + }, +}; diff --git a/routes/api/task/export_zip_cfg.ts b/routes/api/task/export_zip_cfg.ts new file mode 100644 index 0000000..e2e07f0 --- /dev/null +++ b/routes/api/task/export_zip_cfg.ts @@ -0,0 +1,21 @@ +import { Handlers } from "$fresh/server.ts"; +import { User, UserPermission } from "../../../db.ts"; +import { get_task_manager } from "../../../server.ts"; +import { return_data, return_error } from "../../../server/utils.ts"; +import type { ExportZipConfig } from "../../../tasks/export_zip.ts"; + +export const handler: Handlers = { + GET(_req, ctx) { + const user = ctx.state.user; + if ( + user && !user.is_admin && + !(user.permissions & UserPermission.ManageTasks) + ) { + return return_error(403, "Permission denied."); + } + const m = get_task_manager(); + return return_data({ + jpn_title: m.cfg.export_zip_jpn_title, + }); + }, +};