Lacie/image
Lilac-Rose 6680a3f74c feat: add bad apple avatar command and fix infraction removal views
avatar:
- add /avatar bad_apple command: tiles user pfp as fill for Bad Apple frames
- support two-user mode (user1=silhouette, user2=background), outputs MP4
- single-user mode outputs WebM with alpha transparency
- audio sync: detect and trim leading silence via atrim filter, skip
  equivalent video frames so Discord cannot strip silence at playback
- avatar_type global/server fix: use user.avatar explicitly for global
- delta_only option: only render pixels that changed from previous frame
- parallel frame processing with ThreadPoolExecutor (load + composite)
- np.tile replaces PIL paste loop for tiled canvas (major speedup)
- frame list cached at cog_load to avoid re-globbing 6572 files each call
- uses imageio-ffmpeg bundled binary (no system ffmpeg required)

moderation:
- fix InfractionRemovalView buttons erroring with closed database after
  cog reload by opening a fresh connection per button click
- add approval_message_id column to infractions table
- store message ID when sending approval embed
- re-register persistent views on cog_load so buttons survive bot restarts
- add inf resend command to re-send a broken approval embed
2026-03-13 05:46:05 +01:00
..
avatar.py feat: add bad apple avatar command and fix infraction removal views 2026-03-13 05:46:05 +01:00