AI_Chatbot / plugins /storage.js
LejobuildYT's picture
Upload 14 files
ce72224 verified
/**
* Example Plugin: Custom Logging
*
* Dieses Plugin speichert alle Messages in localStorage
* und kann sie später abrufen
*/
const STORAGE_KEY = 'chatbot_history'
const MAX_HISTORY = 100
function getHistory() {
try {
const data = localStorage.getItem(STORAGE_KEY)
return data ? JSON.parse(data) : []
} catch (e) {
console.error('Failed to read history:', e)
return []
}
}
function saveHistory(history) {
try {
const limited = history.slice(-MAX_HISTORY)
localStorage.setItem(STORAGE_KEY, JSON.stringify(limited))
} catch (e) {
console.error('Failed to save history:', e)
}
}
export function onPluginInit(context) {
const history = getHistory()
context.log(`💾 Local Storage Plugin initialized with ${history.length} messages`)
// API für Plugins bereitstellen
window.HistoryAPI = {
getHistory: getHistory,
clearHistory: () => {
localStorage.removeItem(STORAGE_KEY)
context.log('✓ History cleared')
},
exportAsJSON: () => {
const data = {
exported: new Date(),
messages: getHistory(),
}
const json = JSON.stringify(data, null, 2)
const blob = new Blob([json], { type: 'application/json' })
const url = URL.createObjectURL(blob)
const a = document.createElement('a')
a.href = url
a.download = `chatbot-history-${Date.now()}.json`
a.click()
context.log('✓ History exported')
}
}
}
export function onMessageSent(context, { message, systemPrompt }) {
const history = getHistory()
history.push({
type: 'user',
content: message,
timestamp: new Date(),
systemPrompt,
})
saveHistory(history)
context.log(`💾 Saved to local storage (${history.length} messages)`)
}
export function onResponseReceived(context, { content, stats }) {
const history = getHistory()
history.push({
type: 'assistant',
content,
timestamp: new Date(),
tokens: stats.tokens,
time: stats.time,
})
saveHistory(history)
context.log(`💾 Response saved (${history.length} total messages)`)
}