Spaces:
Running
Running
// Functions for downloading JSON files | |
function getCurrentTimestamp() { | |
const now = new Date(); | |
const timezoneOffset = now.getTimezoneOffset() * 60000; // Convert to milliseconds | |
const localTime = new Date(now.getTime() - timezoneOffset); | |
const formattedTimestamp = localTime.toISOString().replace(/[-:]/g, "").slice(0, 15); | |
return formattedTimestamp; | |
} | |
function saveFile(contents, filename) { | |
const element = document.createElement("a"); | |
element.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(contents)); | |
element.setAttribute("download", filename); | |
element.style.display = "none"; | |
document.body.appendChild(element); | |
element.click(); | |
document.body.removeChild(element); | |
} | |
function saveHistory(history, character, mode) { | |
let path = null; | |
if (["chat", "chat-instruct"].includes(mode) && character && character.trim() !== "") { | |
path = `history_${character}_${getCurrentTimestamp()}.json`; | |
} else { | |
try { | |
path = `history_${mode}_${getCurrentTimestamp()}.json`; | |
} catch (error) { | |
path = `history_${getCurrentTimestamp()}.json`; | |
} | |
} | |
saveFile(history, path); | |
} | |
function saveSession(session) { | |
let path = null; | |
path = `session_${getCurrentTimestamp()}.json`; | |
saveFile(session, path); | |
} | |