1// https://api.val.town/v1/express/zzz.IP
2export async function IP(req, res) {
3 const ip = req.get("true-client-ip") ??
1import { myApi } from "https://esm.town/v/dpetrouk/myApi";
2
3export const myApi2 = (name) => myApi(name + ", my friend");
1export function myApi(name) {
2 return { "name": name };
3}
1export function myApi(name) {
2 return "hi " + name;
3}
1import { fetch } from "https://esm.town/v/std/fetch";
2
3export let valTownApiExampleSearch = (async () => {
4 const query = new URLSearchParams({ query: "lodash", limit: "4" });
5 const response = await fetch(`https://api.val.town/v1/search/vals?${query}`);
6 const json = await response.json();
7 return json;
3export let blocks_inner = async (req, res) => {
4 const [_, user, id, ...file] = req.path.split("/");
5 const gist = await fetch(`https://api.github.com/gists/${id}`).then((r) =>
6 r.json()
7 );
1// set by stevekrouse.checkIfTwitterAPIIsDown at 2023-05-09T17:45:30.441Z
2export let twitterAPIDown = {
3 "down": false,
4 "reason": "search returned 4 results at Tue May 09 2023 17:45:30 GMT+0000 (Coordinated Universal Time)"
1import { geoffApiSecret } from "https://esm.town/v/stevekrouse/geoffApiSecret";
2
3export const geoffApi = ({ secret }) => {
4 if (secret !== geoffApiSecret) return "Bad secret";
5};
3export let vid = async (name) =>
4 (await fetchJSON(
5 `https://api.val.town/v1/alias/${name.replace(".", "/").replace("@", "")}`,
6 )).id;
2import { spotifyGetToken } from "https://esm.town/v/stevekrouse/spotifyGetToken";
3import { discoverWeeklySearch } from "https://esm.town/v/stevekrouse/discoverWeeklySearch";
4import { spotifyAPI } from "https://esm.town/v/stevekrouse/spotifyAPI";
5
6export let discoverWeeklyTracks = spotifyAPI({
7 endpoint: `playlists/${discoverWeeklySearch.playlists.items.at(0).id}/tracks`,
8 token: (await spotifyGetToken(spotifyDoNotShareState)).access_token,