4
5// Cryptocurrency Mining Simulator
6function CryptoMiningApp() {
7 const [miners, setMiners] = useState([
8 { name: "Bitcoin", hashRate: 0, power: 0, isActive: false },
130}
131
132function App() {
133 return <CryptoMiningApp />;
134}
135
136function client() {
137 createRoot(document.getElementById("root")).render(<App />);
138}
139if (typeof document !== "undefined") { client(); }
140
141export default async function server(request: Request) {
142 return new Response(`
143 <html>
36};
37
38function App() {
39 const [pdfFile, setPdfFile] = useState(null);
40 const [pdfFileName, setPdfFileName] = useState('');
245}
246
247function client() {
248 createRoot(document.getElementById("root")).render(<App />);
249}
250if (typeof document !== "undefined") { client(); }
251
252export default async function server(request: Request): Promise<Response> {
253 if (request.method === 'POST' && new URL(request.url).pathname === '/crop') {
254 try {
42];
43
44function App() {
45 return (
46 <div>
51}
52
53function client() {
54 createRoot(document.getElementById("root")).render(<App />);
55}
56if (typeof document !== "undefined") { client(); }
57
58export default async function server(request: Request): Promise<Response> {
59 // Handle different routes
60 const url = new URL(request.url);
96let monitor: PumpMonitor | null = null;
97
98function verifyDiscordRequest(request: Request): boolean {
99 const signature = request.headers.get('x-signature-ed25519');
100 const timestamp = request.headers.get('x-signature-timestamp');
108}
109
110async function handlePingCommand(): Promise<Response> {
111 let content: string;
112
133}
134
135export default async function (req: Request): Promise<Response> {
136 if (req.method !== 'POST') {
137 return new Response('Method not allowed', { status: 405 });
63This val uses the SocialData API for Twitter data:
64- **Proxies via Val Town's SocialDataProxy**: Limited to 100 calls/day for [**Val Town Pro users**](https://www.val.town/pricing).
65- **Need more calls?** Sign up for your own [SocialData API token](https://socialdata.tools) and configure the [`socialDataSearch`](https://www.val.town/v/stevekrouse/socialDataSearch) function.
10const isProd = true;
11
12export async function twitterAlert({ lastRunAt }: Interval) {
13 // Scrapes data from past 48 hours time frame if testing
14 const timeFrame = isProd
63This val uses the SocialData API for Twitter data:
64- **Proxies via Val Town's SocialDataProxy**: Limited to 100 calls/day for [**Val Town Pro users**](https://www.val.town/pricing).
65- **Need more calls?** Sign up for your own [SocialData API token](https://socialdata.tools) and configure the [`socialDataSearch`](https://www.val.town/v/stevekrouse/socialDataSearch) function.
10const isProd = true;
11
12export async function twitterAlert({ lastRunAt }: Interval) {
13 // Scrapes data from past 48 hours time frame if testing
14 const timeFrame = isProd
1import safeJsonValue from "npm:safe-json-value";
2
3export async function evalCode(
4 code: string,
5): Promise<{ error: { message: string; name: string; stack: string } } | any> {
43}
44
45function getMainExport(
46 mod: any,
47): { ok: true; value: any } | { ok: false; error: Error } {
74}
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")));
A helper function to build a file's email
Simple functional CSS library for Val Town
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.
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": "*",