mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Fix resetting world info for None option
This commit is contained in:
31
server.js
31
server.js
@@ -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;
|
||||||
|
Reference in New Issue
Block a user