29}`;
3031export default async function changeUserStatus(
32input: Input,
33token: string,
176const duration = 300 + ((300 * dist) / 100);
177var startTime = null;
178function step(time) {
179if (startTime == null) {
180startTime = time;
206}
207// Create HTML choices from ink choices
208_inkStory.currentChoices.forEach(function (choice) {
209// Create paragraph with anchor element
210var choiceParagraphElement = document.createElement("p");
219var choiceAnchorEl =
220choiceParagraphElement.querySelectorAll("a")[0];
221const eventListener = function (event) {
222// Do not follow <a> link
223event.preventDefault();
270};
271temp1(t1);
272_inkStory.BindExternalFunction("str_concat", (a, b) => {
273return a.toString().concat(b.toString());
274});
275_inkStory.BindExternalFunction("urlfetch", (url) => {
276throw new Error("Not yet implemented!");
277});
278_inkStory.BindExternalFunction("json_subscript", (json_data, sub) => {
279return JSON.stringify(JSON.parse(json_data)[sub]);
280});
281_inkStory.BindExternalFunction(
282"json_set_subscript",
283(json_data, sub, item) => {
287},
288);
289_inkStory.BindExternalFunction("json_array_length", (json_data) => {
290return JSON.parse(json_data).length;
291});
292_inkStory.BindExternalFunction("query", (message, defaultValue) => {
293return prompt(message, defaultValue);
294});
295_inkStory.BindExternalFunction("urlpost", (url, payload) => {
296const response_p = fetch(url, {
297method: "POST",
309});
310});
311_inkStory.BindExternalFunction("parseInt", (str) => {
312return parseInt(str, 10);
313});
314_inkStory.allowExternalFunctionFallbacks = true;
315_inkStory.onError = (msg, type) => {
316errorHandlerForAll("Ink story error: ".concat(type, " ", msg));
2import { renderToString } from "npm:react-dom/server";
34export default async function(req: Request) {
5return new Response(
6renderToString(
2import { fetch } from "https://esm.town/v/std/fetch";
34export async function reminders(interval: Interval) {
5function* walk(node, path = []) {
6yield node;
7if (node && Array.isArray(node.value)) {
25* Make sure to set the `CACHE_TABLE_NAME` environment variable first.
26*/
27export async function setup() {
28await sqlite.execute(`
29CREATE TABLE IF NOT EXISTS ${tableName} (
42* @returns The value indicating whether the key is present in cache.
43*/
44export async function exists(key): Promise<Boolean> {
45const result = await sqlite.execute({
46sql: `SELECT 1 FROM ${tableName} WHERE key = :key AND (expires_at IS NULL OR expires_at > datetime('now'))`,
55* @returns The value for the key, or `null` if the key does not exist or has expired
56*/
57export async function get<T = unknown>(key): Promise<T | null> {
58const result = await sqlite.execute({
59sql: `SELECT content FROM ${tableName} WHERE key = :key AND (expires_at IS NULL OR expires_at > datetime('now'))`,
72* @returns The number of keys set (1 if the key was inserted/updated, 0 if the ttl was 0)
73*/
74export async function set(key, value, ttl: number = defaultTTL): Promise<number> {
75if (ttl <= 0) return 0;
76const expires_at = ttl ? `datetime('now', '+${ttl} seconds')` : null;
90* @returns The number of keys set (1 if the key was inserted/updated, 0 if the expiresAt was in the past)
91*/
92export async function setUntil(key: string, value: unknown, expiresAt: string): Promise<number> {
93const currentDateTime = new Date().toISOString();
94if (expiresAt <= currentDateTime) return 0;
108* @returns The number of keys updated (1 if updated, 0 if not found or ttl was 0).
109*/
110export async function setExpiration(key: string, ttl: number = defaultTTL): Promise<number> {
111if (ttl <= 0) return 0;
112const expires_at = `datetime('now', '+${ttl} seconds')`;
127* @returns The number of keys updated (1 if updated, 0 if not found or expiresAt was in the past).
128*/
129export async function setExpirationUntil(key: string, expiresAt: string): Promise<number> {
130const currentDateTime = new Date().toISOString();
131if (expiresAt <= currentDateTime) return 0;
146* @returns A list of keys. Can be an empty list (array) if no keys match.
147*/
148export async function listKeys(
149prefix: string | undefined = undefined,
150): Promise<string[]> {
164* @returns An array of key-value pairs. Each pair is an object with 'key' and 'value' properties.
165*/
166export async function getMany<T = unknown>(
167prefix: string | undefined = undefined,
168limit: number = 0,
201* @returns The number of keys deleted (1 if the key was deleted, 0 if the key did not exist)
202*/
203export async function deleteKey(key): Promise<number> {
204const result = await sqlite.execute({
205sql: `DELETE FROM ${tableName} WHERE key = :key`,
215* @returns The number of keys deleted
216*/
217export async function deleteKeys(
218prefix: string | undefined = undefined,
219): Promise<number> {
231* Perfect for running on a schedule to keep the cache small and fast.
232*/
233export async function deleteExpired(): Promise<number> {
234const result = await sqlite.execute({
235sql: `DELETE FROM ${tableName} WHERE expires_at IS NOT NULL AND expires_at <= datetime('now')`,
239}
240241// Export all functions as a single object to allow for easy importing
242export const cache = {
243setup,
nighthawksChatmain.tsx4 matches
10const kv = new KV();
1112async function generateText(prompt, charId) {
13if (charId) {
14await nighthawks.loadCharacter(charId);
23}
2425async function createCharacter(obj) {
26console.log('Creating character with:', obj)
27await nighthawks.createCharacter(obj);
31}
3233async function saveCharacter(char) {
34console.log('Saving character:', char)
35await nighthawks.saveCharacter(char);
383940async function getStoredCharacter(charId) {
41await nighthawks.loadCharacter(charId);
42if (nighthawks.characters.length > 0) {
sqlite_admin_tablemain.tsx1 match
3import { css } from "https://esm.town/v/stevekrouse/sqlite_admin_css";
45export async function sqlite_admin_table(name: string) {
6if (!name.match(/^[A-Za-z_][A-Za-z0-9_]*$/)) return <>Invalid table name</>;
7let data = await sqlite.execute(`SELECT * FROM ${name}`);
7const openai = new OpenAI();
89function esmTown(url) {
10return fetch(url, {
11headers: {
92});
9394export async function getBooks(file: File) {
95const dataURL = await fileToDataURL(file);
96try {
1export default async function (req: Request): Promise<Response> {
2return Response.json({ ok: true })
3}
2import { Context, Hono } from "npm:hono";
34// Define the route handler function
5export const Time_Blindness_Loud_Calendar_via_iOS_shortcuts = (c: Context) => {
6console.log("Route accessed: Time_Blindness_Loud_Calendar_via_iOS_shortcuts");