Skip to content

P-WORLD 取り込み GIF:代表静止画・TTL(Issue #1582)

代表フレームの選択ルール

  • 目標は アニメーション GIF の 10 コマ目(0 始まりのインデックスでは 9)。
  • コマ数が 10 未満の場合は 最終フレーム(最後のコマ)を使用する。
  • 静止画は JPEG として別添付として保存し、メール本文の imgsrc静止画 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