Port the fish_greeting shell greeting to the new API
The original script (J621-Django/extras/fish_greeting system) downloaded image bytes from /random/?rating=X and read the X-File-* headers. The new API answers with JSON and a signed link, so the greeting now: - asks /api/random/?fastfetch=1&rating=<mode> for JSON; - parses url/j_id/filename/md5 with jq, python3, or a grep/sed fallback; - downloads the signed link and keeps the original display path (fastfetch kitty/kitty-icat logos, gifsicle preprocessing for GIFs, recursion guard, logging with rotation, greeting_mode 0/1/2 = NSFW/SFW/Questionable); - is configured through ~/.config/j621Greeting/config.fish or universal variables (J621_BASE, J621_WEB, J621_TOKEN, J621_FASTFETCH_CONFIG) instead of a hardcoded host, and prints the /detail/<J-ID> link on J621_WEB; - reports the API's own 404 message when a rating has no images, and keeps curl quiet so failures do not spill into the greeting. extras/fish_greeting/ contains the function, an install.fish (copies it into the fish functions dir, creates the config once, checks dependencies) and a README with the old-vs-new table and troubleshooting. The existing gm-switch helper and .desktop launchers keep working (same mode file). Tested with fish 4.9.3: syntax check on every file, guest and token runs against the dev API (unsigned vs signed URLs), the empty-rating and unreachable-API paths, and the grep/sed fallback with jq and python3 unavailable.
This commit is contained in:
@@ -69,8 +69,10 @@ curl -H "Authorization: Token <token>" \
|
||||
- `url` is absolute, and signed for authenticated callers, so fastfetch can
|
||||
load it without headers. Guests get an unsigned URL and only see
|
||||
guest-visible items.
|
||||
- `/random` and `/random/` are aliases of `/api/random/` for scripts; 404 when
|
||||
nothing matches the filters.
|
||||
- `/random` and `/random/` are aliases of `/api/random/` for scripts. Behind
|
||||
the bundled nginx those aliases negotiate on `Accept`: browsers get the SPA
|
||||
page, requesters like curl/wget/fastfetch get the JSON. `/api/random/` is
|
||||
the unambiguous path for scripts; 404 when nothing matches the filters.
|
||||
|
||||
## Licence
|
||||
|
||||
|
||||
Reference in New Issue
Block a user