Refactor: Move daily search limits into rate-limit.js

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-06 16:29:49 -07:00
co-authored by Claude Opus 5.5
parent 0ab01d6e66
commit 826e0cd2dd
2 changed files with 7 additions and 1 deletions
+2 -1
View File
@@ -2,6 +2,7 @@ import { braveImageSearch } from "./_utils/brave.js";
import { bingImageSearchFallback } from "./_utils/bing.js";
import { freeImageUrls, parseFreeSource, FREE_UA } from "./_utils/free.js";
import { isFlickrPlaceholder } from "./_utils/flickr.js";
import { DAILY_LIMIT, FREE_DAILY_LIMIT } from "./_utils/rate-limit.js";
const TTL_SECONDS = 90 * 24 * 60 * 60;
const MAX_INDEX = 20;
@@ -56,7 +57,7 @@ export async function onRequest(context) {
const today = new Date().toISOString().slice(0, 10);
// free.* gets its own counter (prefixed so main-site ids stay unchanged) since it never spends Brave credits
const rateId = await sha256(`${free ? "free:" : ""}${ip}:${today}`);
const limit = free ? 100 : 35;
const limit = free ? FREE_DAILY_LIMIT : DAILY_LIMIT;
let count = 1;
if (env.SURREAL_URL && env.SURREAL_USER && env.SURREAL_PASS) {
+5
View File
@@ -0,0 +1,5 @@
// New searches (cache misses) allowed per IP per day, reset at 00:00 UTC. Cache hits never count.
// Safe to edit by hand; also update the numbers in README.md and index.html.
// The burst limit (~10 req/10s) is a Cloudflare WAF rule, not set here.
export const DAILY_LIMIT = 35;
export const FREE_DAILY_LIMIT = 100;