Backend (handlers_catalogue.go):
- POST /api/admin/text-gen/tagline — 1-sentence marketing hook
- POST /api/admin/text-gen/genres + /apply — LLM genre suggestions, editable + persist
- POST /api/admin/text-gen/content-warnings — mature theme detection
- POST /api/admin/text-gen/quality-score — 1–5 description quality rating
- POST /api/admin/catalogue/batch-covers (SSE) — generate covers for books missing one
- POST /api/admin/catalogue/batch-covers/cancel — cancel via in-memory job registry
- POST /api/admin/catalogue/refresh-metadata/{slug} (SSE) — description + cover refresh
Frontend:
- text-gen: 4 new tabs (Tagline, Genres, Warnings, Quality) with book autocomplete
- image-gen: localStorage style presets (save/apply/delete named prompt templates)
- catalogue-tools: new admin page with batch cover SSE progress + cancel
- admin nav: "Catalogue Tools" link added
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
40 lines
1.7 KiB
JavaScript
40 lines
1.7 KiB
JavaScript
/* eslint-disable */
|
|
import { getLocale, experimentalStaticLocale } from '../runtime.js';
|
|
|
|
/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */
|
|
|
|
/** @typedef {{}} Admin_Nav_FeedbackInputs */
|
|
|
|
const en_admin_nav_feedback = /** @type {(inputs: Admin_Nav_FeedbackInputs) => LocalizedString} */ () => {
|
|
return /** @type {LocalizedString} */ (`Feedback`)
|
|
};
|
|
|
|
/** @type {(inputs: Admin_Nav_FeedbackInputs) => LocalizedString} */
|
|
const ru_admin_nav_feedback = en_admin_nav_feedback;
|
|
|
|
/** @type {(inputs: Admin_Nav_FeedbackInputs) => LocalizedString} */
|
|
const id_admin_nav_feedback = en_admin_nav_feedback;
|
|
|
|
/** @type {(inputs: Admin_Nav_FeedbackInputs) => LocalizedString} */
|
|
const pt_admin_nav_feedback = en_admin_nav_feedback;
|
|
|
|
/** @type {(inputs: Admin_Nav_FeedbackInputs) => LocalizedString} */
|
|
const fr_admin_nav_feedback = en_admin_nav_feedback;
|
|
|
|
/**
|
|
* | output |
|
|
* | --- |
|
|
* | "Feedback" |
|
|
*
|
|
* @param {Admin_Nav_FeedbackInputs} inputs
|
|
* @param {{ locale?: "en" | "ru" | "id" | "pt" | "fr" }} options
|
|
* @returns {LocalizedString}
|
|
*/
|
|
export const admin_nav_feedback = /** @type {((inputs?: Admin_Nav_FeedbackInputs, options?: { locale?: "en" | "ru" | "id" | "pt" | "fr" }) => LocalizedString) & import('../runtime.js').MessageMetadata<Admin_Nav_FeedbackInputs, { locale?: "en" | "ru" | "id" | "pt" | "fr" }, {}>} */ ((inputs = {}, options = {}) => {
|
|
const locale = experimentalStaticLocale ?? options.locale ?? getLocale()
|
|
if (locale === "en") return en_admin_nav_feedback(inputs)
|
|
if (locale === "ru") return ru_admin_nav_feedback(inputs)
|
|
if (locale === "id") return id_admin_nav_feedback(inputs)
|
|
if (locale === "pt") return pt_admin_nav_feedback(inputs)
|
|
return fr_admin_nav_feedback(inputs)
|
|
}); |