39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
import { api } from "/scripts/api.js";
|
|
|
|
const ENDPOINT = "/api/tts-audio-suite/character-aliases";
|
|
|
|
async function request(path = "", options = {}) {
|
|
const response = await api.fetchApi(`${ENDPOINT}${path}`, options);
|
|
let payload = {};
|
|
try {
|
|
payload = await response.json();
|
|
} catch {
|
|
// The status below is more useful than a secondary JSON parse error.
|
|
}
|
|
if (!response.ok) {
|
|
throw new Error(payload.error || `Character alias request failed (${response.status})`);
|
|
}
|
|
return payload;
|
|
}
|
|
|
|
export function loadCharacterAliases(forceRefresh = false) {
|
|
return request(forceRefresh ? "?refresh=1" : "");
|
|
}
|
|
|
|
export function saveCharacterAliases(aliases, groups) {
|
|
return request("", {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({ aliases, groups }),
|
|
});
|
|
}
|
|
|
|
export function resetCharacterAliases() {
|
|
return request("/reset", { method: "POST" });
|
|
}
|
|
|
|
export function characterPreviewUrl(characterName) {
|
|
const params = new URLSearchParams({ character_name: characterName });
|
|
return api.apiURL(`/api/tts-audio-suite/character-preview?${params.toString()}`);
|
|
}
|