paper-dynasty-database/app/services
Cal Corum 1cf0e7eac3 feat: APNG animated card effects for T3/T4 refractor tiers (#186)
Closes #186

- Add app/services/apng_generator.py: scrubs CSS animations via Playwright
  (negative animation-delay + running override), assembles frames with apng lib
- Add GET /{player_id}/{card_type}card/{d}/{variant}/animated endpoint: returns
  cached .apng for T3/T4 cards, 404 for T0-T2
- T3: 12 frames × 200ms (gold shimmer, 2.5s cycle)
- T4: 24 frames × 250ms (prismatic sweep + diamond glow, 6s cycle)
- Cache path: storage/cards/cardset-{id}/{type}/{player_id}-{d}-v{variant}.apng
- Add apng==3.1.1 to requirements.txt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 21:36:45 -05:00
..
__init__.py feat: formula engine for evolution value computation (WP-09) 2026-03-12 19:34:40 -05:00
apng_generator.py feat: APNG animated card effects for T3/T4 refractor tiers (#186) 2026-04-06 21:36:45 -05:00
formula_engine.py refactor: rename evolution system to refractor 2026-03-23 13:31:55 -05:00
refractor_boost.py fix: address PR #177 review — move import os to top-level, add audit idempotency guard 2026-03-30 13:16:27 -05:00
refractor_evaluator.py feat: Refractor Phase 2 integration — wire boost into evaluate-game 2026-03-30 13:04:52 -05:00
refractor_init.py fix: complete remaining evolution→refractor renames from review 2026-03-23 14:17:03 -05:00
season_stats.py fix: add pitcher_id null guard in _get_player_pairs 2026-03-23 12:50:16 -05:00