4const query = "\"samwho.dev\" -is:retweet -from:samwhoo";
5
6export async function twitterAlert({ lastRunAt }: Interval) {
7 // search
8 const since = lastRunAt ? Math.floor(lastRunAt.getTime() / 1000) : 0;
133. Adjust the if statement to detect changes and update your blob
14
154. Craft a message to be sent with `sendNotification()` function
6const SNAKE_SPEED = 100;
7
8function App() {
9 const canvasRef = useRef(null);
10 const [score, setScore] = useState(0);
189}
190
191function client() {
192 createRoot(document.getElementById("root")).render(<App />);
193}
195if (typeof document !== "undefined") { client(); }
196
197export default async function server(request: Request): Promise<Response> {
198 return new Response(`
199 <html>
3import { sqlite } from "https://esm.town/v/std/sqlite";
4
5export default async function(req: Request): Promise<Response> {
6 const TABLE_NAME = "lab_login_users_with_times";
7 const body = await req.json();
3import { sqlite } from "https://esm.town/v/std/sqlite";
4
5export default async function(req: Request): Promise<Response> {
6 const body = await req.json();
7 let { username, password } = body;
10import { basicAuth } from "https://esm.town/v/pomdtr/basicAuth";
11
12function handler(req: Request) {
13 return new Response("You are authenticated!");
14}
23import { verifyToken } from "https://www.val.town/v/pomdtr/verifyToken"
24
25function handler(req: Request) {
26 return new Response("You are authenticated!");
27}
1function extractCredentials(authorization) {
2 const parts = authorization.split(" ");
3 if (parts[0] != "Basic") {
11export type ServeHandler = (req: Request) => Response | Promise<Response>
12
13export function basicAuth(next: ServeHandler, params: {
14 verifyUser: (username: string, password: string) => boolean | Promise<boolean>;
15}): ServeHandler {
8}
9
10export default async function server(request: Request): Promise<Response> {
11 const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
12 const KEY = "delightfulVioletAntlion";
3import { createRoot } from "https://esm.sh/react-dom/client";
4
5function StarRating({ rating, onRate }) {
6 return (
7 <div>
19}
20
21function DetailView({ item, type, onClose }) {
22 const [comments, setComments] = useState([]);
23 const [newComment, setNewComment] = useState('');
93}
94
95function App() {
96 const [page, setPage] = useState("clinics");
97 const [search, setSearch] = useState("");
288}
289
290function client() {
291 createRoot(document.getElementById("root")).render(<App />);
292}
293if (typeof document !== "undefined") { client(); }
294
295export default async function server(request: Request): Promise<Response> {
296 const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
297 const SCHEMA_VERSION = 4
2import { easyAQI } from "https://esm.town/v/stevekrouse/easyAQI?v=5";
3
4export async function aqi(interval: Interval) {
5 const location = "pittsburgh"; // <-- change to place, city, or zip code
6 const data = await easyAQI({ location });
A helper function to build a file's email
Simple functional CSS library for Val Town
import { OpenAI } from "https://esm.town/v/std/openai";
export default async function(req: Request): Promise<Response> {
if (req.method === "OPTIONS") {
return new Response(null, {
headers: {
"Access-Control-Allow-Origin": "*",
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.