4
51. Sign up for [Cerebras](https://cloud.cerebras.ai/)
62. Get a Cerebras API Key
73. Save it in a [Val Town environment variable](https://www.val.town/settings/environment-variables) called `CEREBRAS_API_KEY`
8
9# Todos
9const STARTER_PROMPTS = [
10 "todo list app persisted in local storage",
11 "weather app using open-meteo API",
12 "interactive markdown editor with live preview",
13 "pomodoro timer with sound notifications",
1import { ValSession } from "https://esm.town/v/maxm/valSession";
2// import type { TSearchFilter, WideApi } from "https://esm.town/v/maxm/wideApi";
3type WideApi = any;
4type TSearchFilter = any;
5import { extractValInfo } from "https://esm.town/v/pomdtr/extractValInfo";
7
8const { htmlUrl } = extractValInfo(import.meta.url);
9const _client = hc<WideApi>("https://maxm-wideapi.web.val.run/");
10
11export class Wide {
14 constructor(sessionToken: string) {
15 // TODO: can we use a global client?
16 this.#client = hc<WideApi>("https://maxm-wideapi.web.val.run/");
17 this.#sessionToken = sessionToken;
18 }
75
76export default async function(req: Request): Promise<Response> {
77 // Use your Val Town API Token to create a session
78 const wide = new Wide(await ValSession.new(Deno.env.get("valtown")));
79 await wide.write([{
98 <script>hljs.highlightAll();</script>
99 <style>
100 @import url('https://fonts.googleapis.com/css2?family=Kumbh+Sans:wght@900&family=Roboto+Mono:wght@400;700&display=swap');
101
102 * {
196import { Wide } from 'https://esm.town/v/maxm/wide';
197
198// Use your Val Town API Token to create a session
199const wide = new Wide(await ValSession.new(Deno.env.get("valtown")))
200
86});
87
88export type WideApi = typeof routes;
89
90export default app.fetch.bind(app);
4
51. Sign up for [Cerebras](https://cloud.cerebras.ai/)
62. Get a Cerebras API Key
73. Save it in a [Val Town environment variable](https://www.val.town/settings/environment-variables) called `CEREBRAS_API_KEY`
8
9# Todos
9const STARTER_PROMPTS = [
10 "todo list app persisted in local storage",
11 "weather app using open-meteo API",
12 "interactive markdown editor with live preview",
13 "pomodoro timer with sound notifications",
4
51. Sign up for [Cerebras](https://cloud.cerebras.ai/)
62. Get a Cerebras API Key
73. Save it in a [Val Town environment variable](https://www.val.town/settings/environment-variables) called `CEREBRAS_API_KEY`
8
9# Todos
9const STARTER_PROMPTS = [
10 "todo list app persisted in local storage",
11 "weather app using open-meteo API",
12 "interactive markdown editor with live preview",
13 "pomodoro timer with sound notifications",
14and the `excludes` for what you don't want to get notified for.
15
16You can use [Twitter's search operators](https://developer.twitter.com/en/docs/twitter-api/v1/rules-and-filtering/search-operators) to customize your query, for some collection of keywords, filtering out others, and much more!
17
18## 2. Notification
22## Twitter Data & Limitations
23
24The Twitter API has become unusable. This val gets Twitter data via [SocialData](https://socialdata.tools),
25an affordable Twitter scraping API. In order to make this val easy for
26you to fork & use without signing up for another API, I am proxying
27SocialData via @stevekrouse/socialDataProxy. Val Town Pro users can call this proxy
28100 times per day, so be sure not to set this cron to run more than once every 15 min.
29
30If you want to run it more, get your own [SocialData](https://socialdata.tools)
31API token and pay for it directly.
77
78<p>
79 Spotify <a href='https://www.theverge.com/2024/12/5/24311523/spotify-locked-down-apis-developers'>does</a>
80 a <a href='https://www.theverge.com/2024/11/14/24294995/spotify-ai-fake-albums-scam-distributors-metadata'>lot</a>
81 of <a href='https://www.vice.com/en/article/spotify-rogan-rfk-vaccine-misinformation-policy/'>bad</a>
92 needlessly complex because, like way too many companies,
93 Bandcamp has <a href='https://www.reddit.com/r/BandCamp/comments/k8ojd2/question_for_any_devs_with_bandcamp_experience/'>locked down</a>
94 and <a href='https://github.com/michaelherger/Bandcamp-API'>hobbled</a> their public
95 API, probably because bad actors would abuse it, which is reasonable, but
96 on the other hand, made it impossible to do creative things like this that benefit
97 Bandcamp without annoying workarounds. I don't know, people would probably
98 <a href='https://www.404media.co/bluesky-posts-machine-learning-ai-datasets-hugging-face/'>
99 train some large language model on Bandcamp data</a> if there was a public API,
100 because that's what people do now.
101</p>