mirror of
https://github.com/tiennm99/tiennm99bot.git
synced 2026-10-11 03:13:46 +00:00
feat(random): send /gachabeta clips as 360x640 portrait animations
Each gacha style now carries the frame size it renders, so Telegram receives the beta wish's portrait size while /gacha stays 640x360.
This commit is contained in:
1 parent
fc3c7ae0c0
commit
6f7fff5aab
3 files changed
+15
-9
No files matched your search
@@ -94,8 +94,8 @@ animation and reply show. Options are 5★ by default; prefix `4*` or `3*` to
|
||||
lower one, e.g. `/gacha Pizza, 4* Pho, 3* Rice`.
|
||||
|
||||
The unlisted `/gachabeta` takes the same input and renders the beta version
|
||||
of the wish from `.../api/gachabeta` on the same service, with the same text
|
||||
fallback.
|
||||
of the wish from `.../api/gachabeta` on the same service as a `360x640`
|
||||
portrait MP4, with the same text fallback.
|
||||
|
||||
## 1. MongoDB Atlas (M0)
|
||||
|
||||
|
||||
@@ -16,15 +16,19 @@ const (
|
||||
)
|
||||
|
||||
// gachaStyle is one wish animation the renderer serves: its path next to
|
||||
// /api/gif and the clip length in seconds.
|
||||
// /api/gif, the clip length in seconds, and the frame size it renders for a
|
||||
// gachaRemoteWidth request.
|
||||
type gachaStyle struct {
|
||||
Path string
|
||||
Duration int
|
||||
Width int
|
||||
Height int
|
||||
}
|
||||
|
||||
var (
|
||||
gachaStyleWish = gachaStyle{Path: "gacha", Duration: 7}
|
||||
gachaStyleBeta = gachaStyle{Path: "gachabeta", Duration: 6}
|
||||
gachaStyleWish = gachaStyle{Path: "gacha", Duration: 7, Width: gachaRemoteWidth, Height: gachaRemoteHeight}
|
||||
// The beta wish is portrait: the requested width is its long edge.
|
||||
gachaStyleBeta = gachaStyle{Path: "gachabeta", Duration: 6, Width: gachaRemoteHeight, Height: gachaRemoteWidth}
|
||||
)
|
||||
|
||||
type gachaAPIRequest struct {
|
||||
@@ -87,7 +91,7 @@ func renderGachaAnimation(ctx context.Context, style gachaStyle, label string, r
|
||||
return wheelAnimation{
|
||||
Data: data,
|
||||
Duration: style.Duration,
|
||||
Width: gachaRemoteWidth,
|
||||
Height: gachaRemoteHeight,
|
||||
Width: style.Width,
|
||||
Height: style.Height,
|
||||
}, nil
|
||||
}
|
||||
@@ -208,8 +208,10 @@ func TestGachaBeta_UsesBetaRendererAndAnyoneCanRunIt(t *testing.T) {
|
||||
if animation == nil {
|
||||
t.Fatalf("calls = %+v, want a sendAnimation", rb.Sent())
|
||||
}
|
||||
if got := animation.Form["duration"]; got != "6" {
|
||||
t.Fatalf("duration = %q, want 6", got)
|
||||
for field, want := range map[string]string{"duration": "6", "width": "360", "height": "640"} {
|
||||
if got := animation.Form[field]; got != want {
|
||||
t.Fatalf("%s = %q, want %s", field, got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user