mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Fix continue logic, move update logic
This commit is contained in:
@@ -89,10 +89,83 @@ async function getStats(charStats) {
|
||||
toastr.error('Stats could not be loaded. Try reloading the page.');
|
||||
throw new Error('Error getting stats');
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
return data;
|
||||
charStats = await response.json();
|
||||
return charStats;
|
||||
|
||||
}
|
||||
|
||||
export { userStatsHandler, characterStatsHandler, getStats };
|
||||
/**
|
||||
* Calculates the time difference between two dates.
|
||||
*
|
||||
* @param {string} gen_started - The start time in ISO 8601 format.
|
||||
* @param {string} gen_finished - The finish time in ISO 8601 format.
|
||||
* @returns {number} - The difference in time in milliseconds.
|
||||
*/
|
||||
function calculateGenTime(gen_started, gen_finished) {
|
||||
let startDate = new Date(gen_started);
|
||||
let endDate = new Date(gen_finished);
|
||||
return endDate - startDate;
|
||||
}
|
||||
|
||||
async function updateStats(stats) {
|
||||
const response = await fetch('/updatestats', {
|
||||
method: 'POST',
|
||||
headers: getRequestHeaders(),
|
||||
body: JSON.stringify(stats),
|
||||
|
||||
});
|
||||
|
||||
if (response.status !== 200) {
|
||||
console.error('Failed to update stats');
|
||||
console.log(response).status;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function statMesProcess(line, type, characters, this_chid, charStats, oldMesssage) {
|
||||
console.log(type);
|
||||
if (this_chid === undefined) {
|
||||
console.log(charStats);
|
||||
return;
|
||||
}
|
||||
let stats = await getStats(charStats);
|
||||
let stat = stats[characters[this_chid].avatar];
|
||||
console.log(stat); // add this line to check the value of stat
|
||||
|
||||
stat.total_gen_time += calculateGenTime(line.gen_started, line.gen_finished);
|
||||
if (line.is_user) {
|
||||
if (type != 'append' && type != 'continue' && type != 'appendFinal') {
|
||||
stat.user_msg_count++;
|
||||
stat.user_word_count += line.mes.split(' ').length;
|
||||
}
|
||||
else{
|
||||
let oldLen = oldMesssage.split(' ').length;
|
||||
console.log(`Subtracting ${oldLen} from ${line.mes.split(' ').length}`);
|
||||
stat.user_word_count += line.mes.split(' ').length - oldLen;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// if continue, don't add a message, get the last message and subtract it from the word count of
|
||||
// the new message
|
||||
if (type != 'append' && type != 'continue' && type != 'appendFinal') {
|
||||
stat.non_user_msg_count++;
|
||||
stat.non_user_word_count += line.mes.split(' ').length;
|
||||
}
|
||||
else{
|
||||
let oldLen = oldMesssage.split(' ').length;
|
||||
console.log(`Subtracting ${oldLen} from ${line.mes.split(' ').length}`);
|
||||
stat.non_user_word_count += line.mes.split(' ').length - oldLen;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (type === 'swipe') {
|
||||
stat.total_swipe_count++;
|
||||
}
|
||||
stat.date_last_chat = Date.now();
|
||||
updateStats(stats);
|
||||
}
|
||||
|
||||
|
||||
export { userStatsHandler, characterStatsHandler, getStats, statMesProcess };
|
||||
|
Reference in New Issue
Block a user