mirror of
https://github.com/tiennm99/tiennm99bot.git
synced 2026-10-11 03:13:46 +00:00
The bot now takes the renderer's base URL and appends each /api/<name> route itself, instead of taking the full /api/gif endpoint and swapping its last path segment for /gacha and /genshin. The client, its files, and its errors are named after the renderer rather than wheelofnames; the /wheelofnames command keeps its name. BREAKING CHANGE: WHEELOFNAMES_API_URL is replaced by RENDERER_URL, which holds the base URL (e.g. http://renderer:3000) rather than the /api/gif endpoint. compose.yml sets it, so Coolify needs no value.
1.3 KiB
1.3 KiB
miti99bot Integration
miti99bot's /wheelofnames renders its wheel with this service, configured
by RENDERER_URL, the service's base URL. The service is internal to
the compose network, so requests carry no credentials. Winner handling stays
explicit:
- The bot parses the comma-separated options.
- It chooses
winnerIndexitself. - It calls
POST /api/gif. - It sends the response bytes with Telegram
sendAnimation. - Its caption uses its own winner as the source of truth.
- If the service is not configured or fails, it replies with the winner as text.
Request
Send the JSON body:
{
"options": ["alice", "bob", "carol"],
"winnerIndex": 1,
"durationMs": 6500,
"holdMs": 1200,
"fps": 15,
"size": 512,
"theme": "classic"
}
Response
- Body:
image/gif - Headers:
X-Wheel-Winner-IndexX-Wheel-WinnerX-Render-Duration-Ms
X-Wheel-Winner is URL-encoded. Decode it before displaying if service-side
winner selection is used.
Gacha
/gacha in miti99bot calls POST /api/gacha on the same service.
The bot appends the route to RENDERER_URL, picks the result and rarity
itself, and sends the MP4 with sendAnimation. On any failure it falls back to
a text reply.
The unlisted /genshin command works the same way against POST /api/genshin
and sends the 7-second 640x360 meteor wish.