37
38## How it works
39The sketch function returns an http handler that sets up a basic page with p5.js added. It then imports your module from the browser and wires up all the exports so p5.js can see them. All the code in your val will run in the browser (except for the default `sketch` export) so you can't call any Deno functions, environment variables, or other server side apis.
40
41
1# Glide API 2.0
2
3`Effects` and utility functions for working with Glide API 2.0.
4
5## Authentication
121 const _0x4d306e = _0x249a7e.substr(0, _0x249a7e.indexOf("&"));
122
123 const api = "https://s3taku.com/encrypt-ajax.php?id="
124 + CryptoJS.AES.encrypt(_0x4d306e, CryptoJS.enc.Utf8.parse(key()), {
125 iv: CryptoJS.enc.Utf8.parse(iv()),
126 }).toString() + _0x249a7e.substr(_0x249a7e.indexOf("&")) + "&alias=" + _0x4d306e;
127
128 const apiResponse = await fetch(api, {
129 headers: {
130 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0",
141 });
142
143 if (!apiResponse.ok) throw new Error(`Failed to fetch API: ${apiResponse.statusText}`);
144
145 const apiData = await apiResponse.json();
146 const _0x3b405f = JSON.parse(
147 CryptoJS.enc.Utf8.stringify(CryptoJS.AES.decrypt(apiData.data, CryptoJS.enc.Utf8.parse(key2()), {
148 iv: CryptoJS.enc.Utf8.parse(iv()),
149 })),
36
37Custom middleware can be added in an array as the third argument.
38Middleware can add data to the `req.data` object or return a response for things like API endpoints.
39
40```tsx
62```tsx
63// example middleware
64async function api (req: Request, res: Response, next): Promise<Response> {
65 if (req.pathname !== "/api") return next();
66 if (req.method === "POST") {
67 return Repsonse.json({ message: "Hello POST request" });
70}
71
72export default render(App, import.meta.url, [ api ]);
73```
74
1# getSpotifyTrackUrl
2
3Get a Spotify Track Url using the Spotify Web API given an artist and a song title.
4
5Track info is cached by the query and also the spotify track id, so your popular queries won't have to fetch from Spotify over and over.
28 <title>VALL-E-DRAW</title>
29 <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
30 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@500;700&display=swap"/>
31 <link rel="stylesheet" href="https://esm.sh/tldraw@2.3.0/tldraw.css"/>
32 <link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet" />
1Use my own OpenAI API key to avoid limit
9export async function getGeminiModels(): Promise<GeminiModel[]> {
10 try {
11 const API_KEY = process.env.GEMINI_API_KEY;
12
13 const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models?key=${API_KEY}`);
14
15 const data = await response.json();
1import { fetch } from "https://esm.town/v/std/fetch";
2
3let result = await fetch("https://api64.ipify.org?format=json");
4let json = await result.json();
5console.log(json.ip);
11- [ ] Have any other email login ping me for approval or make a private val with a list of approved emails
12
13## Switchbot API
14
15This val authenticates to the switchbot API with `SWITCHBOT_TOKEN` and `SWITCHBOT_KEY`.
16
17Learn how to get your own Switchbot API keys here: [Switchbot Docs](https://github.com/OpenWonderLabs/SwitchBotAPI).
18
19Migrated from folder: Archive/switchbot