cletus/bot/lib/memory.js
2025-05-09 15:53:19 -05:00

53 lines
No EOL
1.3 KiB
JavaScript

// lib/memory.js
module.exports = {
saveMemory: function (db, label, data, callback = () => {}) {
db.run(
`INSERT OR REPLACE INTO memory (label, data) VALUES (?, ?)`,
[label, JSON.stringify(data)],
callback
);
},
getMemory: function (db, label, callback) {
db.get(
`SELECT data FROM memory WHERE label = ?`,
[label],
(err, row) => {
if (err) return callback(err, null);
if (!row) return callback(null, null);
try {
callback(null, JSON.parse(row.data));
} catch (e) {
callback(e, null);
}
}
);
},
forgetMemory: function (db, label, callback = () => {}) {
db.run(
`DELETE FROM memory WHERE label = ?`,
[label],
callback
);
},
listMemory: function (db, callback) {
db.all(`SELECT label, data FROM memory`, [], (err, rows) => {
if (err) return callback(err, null);
const parsed = rows.map(row => ({
label: row.label,
data: (() => {
try {
return JSON.parse(row.data);
} catch {
return row.data;
}
})()
}));
callback(null, parsed);
});
}
};