1import { paginateAPI } from "https://esm.town/v/andreterron/paginateAPI";
2import { fetchJSON } from "https://esm.town/v/stevekrouse/fetchJSON?v=41";
3import process from "node:process";
15 };
16 const me = await fetchJSON(
17 "https://api.val.town/v1/me",
18 opts,
19 );
20 const vals = await paginateAPI(
21 `https://api.val.town/v1/users/${me.id}/vals?limit=100`,
22 opts,
23 );
7}) {
8 const code = await runVal(
9 "andreterron.generateValCodeAPI",
10 description,
11 );
12 const val = await fetchJSON(
13 `https://api.val.town/v1/vals`,
14 {
15 method: "POST",
2
3export let postWebhookTest4 = fetchJSON(
4 "https://api.val.town/express/@val.postWebhook5",
5 {
6 method: "POST",
3// Public holidays in the US in 2023
4export let holidaysUS = fetchJSON(
5 "https://date.nager.at/api/v2/publicholidays/2023/US"
6);
3// GitHub gists
4export let githubGists = fetchJSON(
5 "https://api.github.com/users/stevekrouse/gists"
6);
1export function myApi(name) {
2 return "hiyyyy " + name;
3}
2
3export function getCoolPosts() {
4 return fetch("https://hn.algolia.com/api/v1/search_by_date?tags=author_pg")
5 .then((res) => res.json())
6 .then((res) => res.hits[0].comment_text);
25`;
26
27 fetchJSON("https://api.magicthegathering.io/v1/cards?power=*")
28 .then(({ cards }) => {
29 const names = new Set();
3
4/**
5 * OpenAI text completion. https://platform.openai.com/docs/api-reference/completions
6 *
7 * val.town and rlimit.com has generously provided a free daily quota. Until the quota is met, no need to provide an API key.
8 *
9 */
10export const gpt4 = async (prompt: string, maxTokens?: number = 1000) => {
11 const parent = parentReference();
12 return await runVal("rlimit.gpt4Api", {
13 prompt,
14 valUser: parent.userHandle,
3// GitHub events
4export let githubEvents = fetchJSON(
5 "https://api.github.com/users/stevekrouse/events"
6);