book-lookup-notionindex.ts16 matches
1/**
2* Notion Book Database Auto-Populator
3* Main HTTP handler and API endpoints
4*/
44app.get('/status', async (c) => {
45const hasNotionToken = !!Deno.env.get('NOTION_API_TOKEN');
46const hasNotionDatabase = !!Deno.env.get('NOTION_DATABASE_ID');
47
48const status = {
49configured: hasNotionToken && hasNotionDatabase,
50notion_token: hasNotionToken ? 'Set' : 'Missing',
51notion_database: hasNotionDatabase ? 'Set' : 'Missing',
52timestamp: new Date().toISOString()
53};
60setup_instructions: {
61notion_token: 'Set NOTION_API_TOKEN environment variable with your Notion integration token',
62notion_database: 'Set NOTION_DATABASE_ID environment variable with your book database ID'
63}
64}, 400);
110app.get('/debug', (c) => {
111const token = Deno.env.get('NOTION_API_TOKEN');
112const databaseId = Deno.env.get('NOTION_DATABASE_ID');
113
114return c.json({
118prefix: token?.substring(0, 10) + '...' || 'N/A'
119},
120database_info: {
121exists: !!databaseId,
122length: databaseId?.length || 0,
123prefix: databaseId?.substring(0, 8) + '...' || 'N/A'
124}
125});
171app.get('/help', (c) => {
172return c.json({
173title: 'Notion Book Database Auto-Populator',
174description: 'Automatically enriches your Notion book database with metadata from Google Books API',
175endpoints: {
176'GET /': 'Process all incomplete records',
183step1: 'Create a Notion integration at https://www.notion.so/my-integrations',
184step2: 'Copy the integration token and set it as NOTION_API_TOKEN environment variable',
185step3: 'Share your book database with the integration',
186step4: 'Copy the database ID from the URL and set it as NOTION_DATABASE_ID environment variable',
187step5: 'Ensure your database has these properties: Title (title), Author (rich text), ISBN (rich text), Year Published (number), Page Count (number), Publisher (rich text)'
188},
189database_properties: {
190required: ['Title (title)', 'Author (rich text)'],
191populated: ['ISBN (rich text)', 'Year Published (number)', 'Page Count (number)', 'Publisher (rich text)'],
book-lookup-notioncron-processor.ts4 matches
15if (result.totalProcessed > 0) {
16const summary = `
17๐ Book Database Update Complete
1819๐ Summary:
3940await email({
41subject: `๐ Book Database Updated - ${result.successful} books enriched`,
42text: summary
43});
52// Send error notification
53await email({
54subject: 'โ Book Database Update Failed',
55text: `
56The scheduled book database update failed with the following error:
5758${error instanceof Error ? error.message : 'Unknown error'}
9- The **client-side entrypoint** is `/frontend/index.html`, which in turn imports `/frontend/index.tsx`, which in turn imports the React app from `/frontend/components/App.tsx`.
1011[React Hono Example](https://www.val.town/x/stevekrouse/reactHonoExample) is a fuller featured example project, with a SQLite database table, queries, client-side CSS and a favicon, and some shared code that runs on both client and server.
sqliteExplorerAppREADME.md1 match
30- [ ] add triggers to sidebar
31- [ ] add upload from SQL, CSV and JSON
32- [ ] add ability to connect to a non-val town Turso database
33- [x] fix wonky sidebar separator height problem (thanks to @stevekrouse)
34- [x] make result tables scrollable
testPondiverseaddCreation2 matches
45}
4647// Now it's time to upload things to database and blob storage
48// First, add to database, and get the ID
49const id = await sqlite.execute(
50`INSERT INTO ${TABLE_NAME} (title, type, time) VALUES ($title, $type, $time)`,
To-owired-nieTODOs.md1 match
9- [ ] make it one click to branch off like old jp townie demos
10- [ ] opentownie as a pr bot
11- [ ] give it the ability to see its own client-side and server-side logs by building a middleware that shoves them into a SQL light database date and then give it a tool to access them
12- [ ] do a browser use or screenshot thing to give it access to its own visual output
13- [ ] Have it default to creating a new branch off main
To-owired-niethink.ts1 match
7export const thinkTool = tool({
8description:
9"Use the tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed.",
10parameters: z.object({
11thought: z.string().describe("A thought to think about."),
To-owired-niesystem_prompt.txt2 matches
174```
175โโโ backend/
176โ โโโ database/
177โ โ โโโ migrations.ts # Schema definitions
178โ โ โโโ queries.ts # DB query functions
234```
235236### Database Patterns
237- Run migrations on startup or comment out for performance
238- Change table names when modifying schemas rather than altering
To-owired-niesend-message.ts1 match
10overLimit,
11startTrackingUsage,
12} from "../database/queries.tsx";
13import { makeChangeValTypeTool, makeFetchTool, makeTextEditorTool } from "../tools/index.ts";
14import fileWithLinesNumbers from "../utils/fileWithLinesNumbers.ts";
To-owired-niequeries.tsx1 match
4import { INFERENCE_CALLS_TABLE, USAGE_TABLE } from "./schema.tsx";
56// Eventually we'll have a user database,
7// but in the meantime, we can cache user info in memory
8const userIdCache: { [key: string]: any } = {};