From b7445b81d1457182a0aa21f0c675110dc2233628 Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Sun, 7 Sep 2025 22:44:10 -0700 Subject: [PATCH] lenient --- index.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index d9deebc..e43130b 100644 --- a/index.js +++ b/index.js @@ -59,10 +59,10 @@ export class ChatsuneDurableObject { if (timestamps.length >= 5) return server.send(JSON.stringify({ type: 'ERROR', payload: 'Rate limit exceeded.' })); this.rateLimiter.set(server.ip, [...timestamps, now]); - const modRes = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent?key=${this.env.GOOGLE_KEY}`, { method: 'POST', body: JSON.stringify({ contents: [{ parts: [{ text: `if this message is appropiate respond only with yes, if its not respond with anything but yes. message: ${data.payload.text}` }] }] }) }); - const modData = await modRes.json(); - if (modData.candidates?.[0]?.content?.parts?.[0]?.text.trim().toLowerCase() !== 'yes') return server.send(JSON.stringify({ type: 'ERROR', payload: 'Message rejected by moderator.' })); - + const modRes = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent?key=${this.env.GOOGLE_KEY}`, { method: 'POST', body: JSON.stringify({ contents: [{ parts: [{ text: `You're a lenient chat moderator for a good UX. Reply 'yes' if a message is appropriate. Message: ${data.payload.text}` }] }] }) }); + const modBody = await modRes.text(); + if (modRes.status !== 429 && !modBody.includes('429') && !modBody.toLowerCase().includes('yes')) return server.send(JSON.stringify({ type: 'ERROR', payload: 'Message rejected by moderator.' })); + const messagePayload = { author: { name: server.username }, text: data.payload.text, timestamp: new Date().toISOString() }; this.messages.push(messagePayload); this.messages = this.messages.slice(-4);