Commit Graph
28 Commits
Author SHA1 Message Date
multipleof4andClaude Opus 5.5 3121dd0dda Feat: Newsletter sign-up at the bottom of the homepage
A "Get Updates" form subscribes emails to the direct-img pool on
newsletter.planetrenox.com, behind the shared "newsletter" Turnstile
widget (direct-img.link was added to its allowed domains). The privacy
policy now covers what sign-up stores and the Turnstile script.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:24:35 +00:00
multipleof4andClaude Opus 5.5 865b9d951d Fix: Cache AI fallback images for 90 days like every other image
They were kept for 24h so a later search could replace them, but that
regenerated them daily for no real gain. Searches where the AI image also
fails are still remembered for 24h as bad.webp. With one TTL for all images
again, the per-image ttl stored in KV and R2 is no longer needed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:06:31 +00:00
multipleof4andClaude Opus 5.5 6fb64e9d7b Feat: AI images on ai.direct-img.link, and as the fallback when a search finds nothing
ai.direct-img.link serves images from the AuroraIMG-6M API on our Dokploy
server (github.com/direct-img/AuroraIMG-6M) instead of searching. It takes
?src= (auroraimg-6m, case-insensitive, the default and only source for now)
and ?i=, where each i gets its own seed derived from the query, so it's a
different image of the same prompt. It has its own daily limit
(AI_DAILY_LIMIT) and AI: cache keys / ai/ R2 prefix. Failed generations
aren't cached, since they're likely temporary.

On direct-img.link and free.direct-img.link, a search that finds nothing (or
fewer than i working images) now serves an AI image of the query instead of
bad.webp. It's kept for 24h like failures were, so a later search can still
find a real image; bad.webp is only served if the AI image fails too. Its ttl
is stored in KV and R2 metadata so cache hits and deduped waiters send a
matching max-age.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:56:39 +00:00
multipleof4andClaude Opus 5.5 1ebcfc777e Perf: Serve homepage and assets without invoking Functions
Add _routes.json so /, /robots.txt and /assets/* skip the worker and
don't count against the Functions request quota. rate-limit.js moves to
assets/ so the homepage reads it client-side instead of via HTMLRewriter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 16:43:25 -07:00
multipleof4andClaude Opus 5.5 c76b1ba5f7 Feat: Homepage reads daily limits from rate-limit.js
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 16:35:46 -07:00
multipleof4andClaude Opus 5.5 0ab01d6e66 Feat: Give free.direct-img.link its own 100/day search limit
Free searches never spend Brave credits, so they no longer share the
main site's 35/day counter. Main-site rate ids are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 16:23:56 -07:00
multipleof4andClaude Opus 5.5 8b49ebdf71 Feat: Raise daily search limit to 35
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 12:42:17 -07:00
multipleof4andClaude Opus 5.5 62d6bcda0b Docs: Use free image in README preview, trim homepage i= note
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 12:10:46 -07:00
multipleof4andClaude Opus 5.5 029b259f05 Feat: Add free.direct-img.link and ?i= result picker (#1)
- free.direct-img.link serves only unrestricted (public domain/CC0) images
  from Openverse (license=cc0,pdm) and Wikimedia Commons
  (haslicense:unrestricted), with optional ?src=openverse|wikimedia
- ?i=1..20 picks the i-th working image on both sites; broken links are
  skipped so every index is a different image
- Openverse OAuth token is cached in KV and refreshed automatically
- Skip Flickr "photo unavailable" placeholders (served with HTTP 200)
- Free/indexed cache keys use uppercase prefixes; plain main-site keys
  are unchanged so existing cache entries stay valid
- Update README, homepage, privacy policy and terms

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 12:00:54 -07:00
multipleof4andClaude Opus 5.5 023f4d132c Feat: Add GoatCounter analytics, Terms & Privacy pages, prompt copy button
- Update AI system prompt example (README + index)
- Add copy button for the prompt on the index page
- Add GoatCounter to homepage; report image hits server-side via
  waitUntil (optional GOATCOUNTER_URL/GOATCOUNTER_TOKEN)
- Add TERMS.md and PRIVACY.md, linked in the index footer
- Remove dead c.planetrenox.com tracker

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 08:51:48 -07:00
multipleof4andClaude Opus 5.5 2976236c00 Feat: Add logo, favicon and bad.webp; move images to /assets
- New logo (svg + jpg) and multi-size favicon.ico
- /favicon.ico still served at root so direct image views get the icon
- Generated missing bad.webp placeholder
- Moved limit.webp into /assets and routed error images via helper

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 17:49:18 -07:00
multipleof4andClaude Opus 5.5 f1e894d1bb Fix: Lower daily search limit to 20
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 14:10:02 -07:00
multipleof4andClaude Opus 5.5 d81cd26a1e Docs: Add GitHub Sponsors button and fix rate limit/cache info
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 14:00:45 -07:00
multipleof4 864605d022 Remove unnecessary whitespace in index.html
Removed unnecessary whitespace in the head section.
2026-03-06 18:53:12 -08:00
multipleof4 c0202fc713 Update index.html 2026-03-06 18:53:04 -08:00
multipleof4 15ac411ed3 Feat: Add analytics tracker script to head 2026-02-27 09:30:47 -08:00
multipleof4 b17057c49d Refactor: Update BTC donation address 2026-02-19 12:23:07 -08:00
multipleof4 8b9d72c83e Refactor: Update index.html with new AI prompt & golf CSS 2026-02-19 08:11:56 -08:00
multipleof4 12265dcfff Feat: Update docs to mention dot encoding 2026-02-17 19:51:56 -08:00
multipleof4 43ff666933 Refactor: Update rate limit to 15 in landing page 2026-02-14 19:02:22 -08:00
multipleof4 17090b28f3 Feat: Increase daily search rate limit from 10 to 25 2026-02-14 08:48:49 -08:00
multipleof4 964249582a Refactor: Replace URL format with AI prompt, remove privacy 2026-02-13 19:07:20 -08:00
multipleof4 39d9692095 Refactor: Update rate limit table for CF Free 2026-02-13 16:56:43 -08:00
multipleof4 5dbab52bad Feat: Add donation-based limit increase notice 2026-02-13 16:16:20 -08:00
multipleof4 f2f380c0b8 Feat: Complete info migration from README to index 2026-02-13 16:12:11 -08:00
multipleof4 ef28db0310 Refactor: Add rate limits and remove infra mentions 2026-02-13 16:07:39 -08:00
multipleof4 984ce17165 Refactor: Remove demo and add donation warning 2026-02-13 16:05:43 -08:00
multipleof4 8db9a006b2 Feat: Add minimalist light-themed landing page 2026-02-13 16:02:26 -08:00