Fix resetting world info for None option

This commit is contained in:
SillyLossy
2023-02-10 13:50:26 +02:00
parent 0c77d41fa6
commit d79d4f83f9

View File

@@ -1084,16 +1084,7 @@ function findTavernWorldEntry(info, key) {
} }
async function synchronizeKoboldWorldInfo(worldInfoName) { async function synchronizeKoboldWorldInfo(worldInfoName) {
const koboldFolderName = getKoboldWorldInfoName(worldInfoName); const { koboldFolderName, tavernWorldInfo } = readWorldInfoFile(worldInfoName);
const filename = `${worldInfoName}.json`;
const pathToWorldInfo = path.join('public/KoboldAI Worlds/', filename);
if (!fs.existsSync(pathToWorldInfo)) {
throw new Error(`World info file ${filename} doesn't exist.`);
}
const tavernWorldInfoText = fs.readFileSync(pathToWorldInfo, 'utf8');
const tavernWorldInfo = JSON.parse(tavernWorldInfoText);
// Get existing world info // Get existing world info
const koboldWorldInfo = await getAsync(`${api_server}/v1/world_info`, baseRequestArgs); const koboldWorldInfo = await getAsync(`${api_server}/v1/world_info`, baseRequestArgs);
@@ -1108,7 +1099,7 @@ async function synchronizeKoboldWorldInfo(worldInfoName) {
} = await validateKoboldWorldInfo(koboldFolderName, koboldWorldInfo, tavernWorldInfo); } = await validateKoboldWorldInfo(koboldFolderName, koboldWorldInfo, tavernWorldInfo);
// Create folder if not already exists // Create folder if not already exists
if (shouldCreateWorld) { if (koboldFolderName && shouldCreateWorld) {
koboldWorldUid = await createKoboldFolder(koboldFolderName, tavernEntriesToCreate, tavernWorldInfo); koboldWorldUid = await createKoboldFolder(koboldFolderName, tavernEntriesToCreate, tavernWorldInfo);
} }
@@ -1117,6 +1108,24 @@ async function synchronizeKoboldWorldInfo(worldInfoName) {
await createTavernEntries(tavernEntriesToCreate, koboldWorldUid, tavernWorldInfo); await createTavernEntries(tavernEntriesToCreate, koboldWorldUid, tavernWorldInfo);
} }
function readWorldInfoFile(worldInfoName) {
if (!worldInfoName) {
return { koboldFolderName: null, tavernWorldInfo: { entries: {}, folders: {} }};
}
const koboldFolderName = getKoboldWorldInfoName(worldInfoName);
const filename = `${worldInfoName}.json`;
const pathToWorldInfo = path.join('public/KoboldAI Worlds/', filename);
if (!fs.existsSync(pathToWorldInfo)) {
throw new Error(`World info file ${filename} doesn't exist.`);
}
const tavernWorldInfoText = fs.readFileSync(pathToWorldInfo, 'utf8');
const tavernWorldInfo = JSON.parse(tavernWorldInfoText);
return { koboldFolderName, tavernWorldInfo };
}
async function createKoboldFolder(koboldFolderName, tavernEntriesToCreate, tavernWorldInfo) { async function createKoboldFolder(koboldFolderName, tavernEntriesToCreate, tavernWorldInfo) {
const createdFolder = await postAsync(`${api_server}/v1/world_info/folders`, { data: {}, ...baseRequestArgs }); const createdFolder = await postAsync(`${api_server}/v1/world_info/folders`, { data: {}, ...baseRequestArgs });
const koboldWorldUid = createdFolder.uid; const koboldWorldUid = createdFolder.uid;