117 try {
118 // Try server-side TTS first
119 const response = await fetch('/text-to-speech', {
120 method: 'POST',
121 headers: {
52 * Server handler that processes requests
53 */
54export default app.fetch;
35 console.log("🔊 Sending request to Groq Speech API");
36 const start = Date.now();
37 const response = await fetch("https://api.groq.com/openai/v1/audio/speech", {
38 method: "POST",
39 headers: {
33 });
34
35// HTTP vals expect an exported "fetch handler"
36// This is how you "run the server" in Val Town with Hono
37export default app.fetch;
54 });
55
56 // Fetch event - serve cached content when offline
57 self.addEventListener('fetch', event => {
58 event.respondWith(
59 caches.match(event.request)
65
66 // Clone the request
67 const fetchRequest = event.request.clone();
68
69 // Make network request and cache the response
70 return fetch(fetchRequest).then(response => {
71 // Check if valid response
72 if (!response || response.status !== 200 || response.type !== 'basic') {
60 setError("");
61
62 const response = await fetch('/generate-speech', {
63 method: 'POST',
64 headers: { 'Content-Type': 'application/json' },
365 });
366
367 self.addEventListener('fetch', (event) => {
368 event.respondWith(
369 caches.match(event.request).then((response) => {
370 return response || fetch(event.request);
371 })
372 );
57
58 try {
59 const response = await fetch('/generate-speech', {
60 method: 'POST',
61 headers: { 'Content-Type': 'application/json' },
295 });
296
297 self.addEventListener('fetch', (event) => {
298 event.respondWith(
299 caches.match(event.request).then((response) => {
300 return response || fetch(event.request);
301 })
302 );
45 if (!text.trim()) return;
46
47 const response = await fetch('/generate-speech', {
48 method: 'POST',
49 headers: { 'Content-Type': 'application/json' },
257 });
258
259 self.addEventListener('fetch', (event) => {
260 event.respondWith(
261 caches.match(event.request).then((response) => {
262 return response || fetch(event.request);
263 })
264 );
2
3export default async function(interval: Interval) {
4 // fetch random article from wikipedia api
5 const randomArticle = await fetch(
6 "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=extracts&meta=&generator=random&formatversion=2&exsentences=1&explaintext=1&grnnamespace=0",
7 );
181
182 try {
183 const response = await fetch("/", {
184 method: "POST",
185 body: JSON.stringify({