import { Elysia } from "elysia"; import { BaseHtml } from "../components/base"; import { Header } from "../components/header"; import db from "../db/db"; import { Filename, Jobs } from "../db/types"; import { ALLOW_UNAUTHENTICATED, WEBROOT } from "../helpers/env"; import { DownloadIcon } from "../icons/download"; import { DeleteIcon } from "../icons/delete"; import { EyeIcon } from "../icons/eye"; import { type Translator, createTranslator, defaultLocale } from "../i18n/index"; import { localeService } from "../i18n/service"; import { userService } from "./user"; function ResultsArticle({ job, files, outputPath, t = createTranslator(defaultLocale), }: { job: Jobs; files: Filename[]; outputPath: string; t?: Translator; }) { return (

{t("results", "title")}

{files.map((file) => { const isTarFile = file.output_file_name.endsWith(".tar"); return ( ); })}
{t("results", "convertedFileName")} {t("results", "status")} {t("results", "actions")}
{file.output_file_name} {file.status} {/* Hide preview icon for .tar files */} {!isTarFile && ( )}
); } export const results = new Elysia() .use(userService) .use(localeService) .get( "/results/:jobId", async ({ params, set, cookie: { job_id }, user, locale, t }) => { if (job_id?.value) { // Clear the job_id cookie since we are viewing the results job_id.remove(); } const job = db .query("SELECT * FROM jobs WHERE user_id = ? AND id = ?") .as(Jobs) .get(user.id, params.jobId); if (!job) { set.status = 404; return { message: t("errors", "jobNotFound"), }; } const outputPath = `${user.id}/${params.jobId}/`; const files = db .query("SELECT * FROM file_names WHERE job_id = ?") .as(Filename) .all(params.jobId); return ( <>