sqliteAdminREADME.md1 match
13## Authentication
1415Login to your SQLite Explorer with [password authentication](https://www.val.town/v/pomdtr/password_auth) with your [Val Town API Token](https://www.val.town/settings/api) as the password.
1617## Todos / Plans
sqliteAdminmain.tsx2 matches
27<head>
28<title>SQLite Explorer</title>
29<link rel="preconnect" href="https://fonts.googleapis.com" />
3031<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
32<link
33href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@300..700&family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap"
34rel="stylesheet"
35/>
5Currently it renders cached output, for demo purposes (running takes 30-60s).
67🪩 To fork, [sign up for Substrate](https://substrate.run/signin) to get your own API key and $50 free credits
4import { zodToJsonSchema } from "npm:zod-to-json-schema";
56const substrate = new Substrate({ apiKey: Deno.env.get("SUBSTRATE_API_KEY") });
78const topic = "a traveler lost in a rainforest";
133<body>
134<div id="container">
135<img id="gifDisplay" src="/api/placeholder/500/300" alt="GIF Display">
136<div id="textOverlay"></div>
137</div>
1import { API_URL } from "https://esm.town/v/std/API_URL";
2import { parseSendGridEmail } from "https://esm.town/v/stevekrouse/parseSendGridEmail?v=8";
3import { parseSendGridEmails } from "https://esm.town/v/stevekrouse/parseSendGridEmails?v=10";
69}) => {
70let result = await fetch(
71`${API_URL}/v1/email`,
72{
73method: "POST",
6* Fork this val to your own profile.
7* Make a folder for the temporary vals that get generated, take the ID from the URL, and put it in `tempValsParentFolderId`.
8* If you want to use OpenAI models you need to set the `OPENAI_API_KEY` [env var](https://www.val.town/settings/environment-variables).
9* If you want to use Anthropic models you need to set the `ANTHROPIC_API_KEY` [env var](https://www.val.town/settings/environment-variables).
10* Create a [Val Town API token](https://www.val.town/settings/api), open the browser preview of this val, and use the API token as the password to log in.
1112<img width=500 src="https://imagedelivery.net/iHX6Ovru0O7AjmyT5yZRoA/7077d1b5-1fa7-4a9b-4b93-f8d01d3e4f00/public"/>
16async function getResults(q: string, n: number): Promise<ShotResult[]> {
17const substrate = new Substrate({
18apiKey: process.env.SUBSTRATE_API_KEY,
19});
20const collectionName = "shotclip";
GetWebsiteMetadatamain.tsx1 match
5// First extract query param from the URL
6const url = new URL(req.url);
7// People forget capitalization all the time. Let's go easy on them and check a few queryParam keys. :)
8const targetUrlKeys = [
9"targetURL",
32Make an HTTP val (other vals are currently not supported to run, even though we have examples for them).
33Start your response with a comment explaining how your approach will work, what libraries or
34API calls you will use, and any tradeoffs you're making. Then write the code in a consise way,
35the simplest way to achieve the goal, though you can add some inline comments to explain your
36reasoning (not for every line, but for major groups of lines). Don't use any environment variables
37unless strictly necessary, for example use APIs that don't require a key, prefer internal function
38imports (using esm.town), and prefer putting API keys as inline variables. Use built-in Deno
39functions where possible. Unless specified, don't add error handling,
40make sure that errors bubble up to the caller.
41Avoid external images or base64 images, use emojis, unicode symtols, or icon fonts/libraries instead, unless that's
42not practical for the user's request (e.g. if they ask for a particular animated gif).
43If the user asks for something that requires persistence, use the Val Town Blob storage API, unless
44explicitly specified otherwise. Use the current val name for the storage key, which you can get
45using the "pomdtr/extractValInfo" val, which you can call like this:
430const tempValName = `valle_tmp_${Math.random() * 10}`.replaceAll(".", "");
431const newCode = tokens.join("").replaceAll("```ts", "").replaceAll("```", "").replace(/^ts\n/, "");
432// Errors in running the val bubble up through this API, so ignore them.
433await vt.vals.create({ name: tempValName, code: newCode, type: "httpnext" as any, privacy: "unlisted" }).catch(
434(error) => {
glideImportDemomain.tsx4 matches
5import * as Glide from "https://esm.town/v/dvdsgl/glide?v=661";
67// 2. Add an environment variable named "glide" with your Glide API
8// token.
9//
14const table = "replace-me-abc123-xyz456";
1516// 4. Implement row fetching using an API or a library:
17//
18// For example, you could call an API in a loop, using yield for each
19// batch of rows to import.
20async function* getRows() {
31// 5. Run the import.
32//
33// Warning: This API will completely replace the contents and columns
34// of the target table.
35await Glide.importTable({ table, getRows });