Appearance
P-WORLD 取り込み GIF:代表静止画・TTL(Issue #1582)
代表フレームの選択ルール
- 目標は アニメーション GIF の 10 コマ目(0 始まりのインデックスでは 9)。
- コマ数が 10 未満の場合は 最終フレーム(最後のコマ)を使用する。
- 静止画は JPEG として別添付として保存し、メール本文の
imgのsrcは 静止画 URL を指す。GIF 本体はバックアップ・手動での代表フレーム再取得用として残す(TTL まで)。
GIF 本体の TTL
- 取り込み時に GIF 添付へ
_pworld_gif_expires_at(Unix 時刻)を付与する。保持日数は管理画面の GIF 保持日数(wp_options)に従う(既定 30 日)。 - 定期 Cron で 期限切れ GIF 添付のみを削除する。代表静止画添付は削除しない。
- 外部委譲(AWS Lambda 等)は別 Issue(#1583)で扱う。
関連コード
PworldImageProcessor— GIF 保存後の静止画生成・meta 付与GifFrameExtractor/GifFrameExtractorInterface— 代表フレーム抽出(extractは 10 コマ目相当、extractAtIndexは任意フレーム・クランプあり)PworldGifTtlPurgeService— 期限切れ GIF 添付の削除PworldGifStillFrameRegenerator— 管理画面からの代表フレーム再取得(regenerateAtIndexでフレーム指定)- メール一覧の「代表フレーム再取得」—
gif-still-regenerateバンドル(useGifFrames/useGifPlayback再利用)でモーダル選択後に AJAX