1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
let { messages2 } = await import("https://esm.town/v/stevekrouse/messages2");
// Store messages via SQLite
// (stores at @me.messages2 in the current version)
// like `https://www.val.town/@stevekrouse.tell` but cooler!
export const tell2 = async (msg) => {
const { DB } = await import("https://deno.land/x/sqlite/mod.ts");
const db = new DB();
// Get existing messages (if any)
if (messages2 !== undefined) {
db.deserialize(messages2);
}
// Create the table (if required)
db.execute(`
CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
message TEXT,
time INTEGER
);
`);
// Save the message
db.query("INSERT INTO messages (message, time) VALUES (?, ?)", [
msg,
Date.now(),
]);
const data = db.serialize();
// Uint8Array can't be stored at val town (yet?)
// so we need to save it as an `Array`
messages2 = Array.from(data);
// Some debug logs
const allMessages = db.query("SELECT * from messages;");
console.log(db.query("SELECT * from messages;"));
console.log("messages data size:", data.length);
db.close();
return `thanks! ${allMessages.length} messages so far!`;
};
// Forked from @healeycodes.tell2