41export function alias<P extends Params>(params: P): Promise<Result<P>> {
42 const username = params.username;
43 let url = `https://api.val.town/v1/alias/${username}`;
44 if ("valName" in params) {
45 url = url + `/${params.valName}`;
1export function myApi(name) {
2 return "hi " + name;
3}
3// GitHub followers
4export let githubFollowers = fetchJSON(
5 "https://api.github.com/users/stevekrouse/followers",
6);
6 );
7 const airtable = new Airtable({
8 apiKey: process.env.airtable_pat,
9 baseId: "appXSrKDlwbAijRmD",
10 tableName: "All content",
1export function myApi(name) {
2 return "hi " + name;
3}
1export function myApi(name) {
2 return "hi " + name;
3}
1export function myApi(name) {
2 return "hi " + name;
3}
5
6export async function tgWebhook(req, res) {
7 const botSecretToken = req.get("X-Telegram-Bot-Api-Secret-Token");
8 if (botSecretToken !== process.env.tgBotSecretToken) {
9 res.status(401).json({ ok: false, description: "Unauthorized" });
9 "Bullet",
10 "Computer",
11 "Rapid",
12 "Top Rated",
13 "Blitz",
6// Create a summary from a given text using GPT 4
7export const OpenAISummary = async (text: string, config: {
8 apiKey?: string;
9 jwt?: string;
10 modelName?: string;
11} = {}) => {
12 const { apiKey, jwt, modelName = "gpt-4" } = config;
13 if (!apiKey && !jwt) {
14 const { success, reset } = await upstashRateLimiter(
15 "anon",
22 }
23 }
24 else if (!apiKey) {
25 try {
26 await verifyJWT(jwt);
31 }
32 const agent = await AIAgent(
33 apiKey || process.env.OPENAI_API_KEY_GPT4,
34 );
35 const response = await agent.summarize(text, modelName);