1# Hono
2
3Here's an example using the [Hono](https://hono.dev/) server library with the [Web API](https://docs.val.town/api/web). It works great!
4
5
4export function feed() {
5 let _feed = following.map(async (name) => {
6 let req = await fetch(`https://api.val.town/v1/run/${name}.posts`);
7 let res = (req.status === 200) ? req.json() : {};
8 return res;
4 const searchParams = new URL(req.url).searchParams;
5 const id = searchParams.get("id");
6 const url = `https://glif.app/api/glifs?id=${id}`;
7 try {
8 const response = await fetch(url);
2
3export const glifs = async (id: string) => {
4 const url = `https://glif.app/api/glifs?featured=1`;
5 try {
6 const response = await fetch(url);
3This uses the brand new `gpt-4-1106-preview`.
4
5To use this, set `OPENAI_API_KEY` in your [Val Town Secrets](https://www.val.town/settings/secrets).
6
7Migrated from folder: Archive/IntroVideo/gpt4Example
6import OpenAI from "npm:openai";
7
8const openai = new OpenAI({ apiKey: process.env.openai });
9
10export async function emojiSearchBot({ lastRunAt }: Interval) {
14 }&expansions=attachments.media_keys&media.fields=duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width,alt_text`;
15 const result = await twitterJSON({
16 url: `https://api.twitter.com/2/users/1721850098575908864/mentions` + query,
17 bearerToken: process.env.twitter,
18 });
9 },
10) {
11 const url = "https://api.twitter.com/2/oauth2/token";
12 const body = new URLSearchParams({
13 grant_type: "refresh_token",
11 },
12) {
13 const url = "https://api.twitter.com/2/oauth2/token";
14 const body = new URLSearchParams({
15 code,
2import OpenAI from "npm:openai";
3
4const openai = new OpenAI({ apiKey: process.env.openai });
5
6async function main() {
3export const searchArXiV = async ({ query = "", start = 0, max_results = 10 }) => {
4 const { parseStringPromise } = await import("npm:xml2js");
5 const url = new URL("https://export.arxiv.org/api/query");
6 url.searchParams.set("search_query", query);
7 url.searchParams.set("start", start);