Implement episode metadata management: add functionality to refresh episode metadata from external sources, including new API endpoints and UI integration. Enhance Show and Episode models to support additional metadata fields, and update database schema accordingly. Update ShowDetail and ShowMetadataCard components to display refreshed episode information and provide user feedback on metadata updates.
This commit is contained in:
1 parent
0d2dee815e
commit
7fb46b5e0d
30 files changed
+1563
-81
No files matched your search
@@ -19,7 +19,9 @@ public sealed record BumperRenderSpec(
|
||||
string NextLabel,
|
||||
string NextTitle,
|
||||
string? BackgroundFile = null,
|
||||
string? MusicFile = null
|
||||
string? MusicFile = null,
|
||||
/// <summary>Постер шоу как фон (используется, если нет загруженного фона канала; затемняется).</summary>
|
||||
string? PosterFile = null
|
||||
);
|
||||
|
||||
/// <summary>Итог рендера заставки — та же форма метаданных, что у обычного ассета после нарезки.</summary>
|
||||
|
||||
@@ -23,6 +23,15 @@ public interface IMetadataImageStore
|
||||
|
||||
void DeleteShowImages(Guid showId);
|
||||
|
||||
/// <summary>Скачивает кадр серии по URL. Возвращает относительный путь или null при ошибке.</summary>
|
||||
Task<string?> DownloadEpisodeStillAsync(
|
||||
Guid episodeId,
|
||||
string url,
|
||||
CancellationToken cancellationToken
|
||||
);
|
||||
|
||||
void DeleteEpisodeImages(Guid episodeId);
|
||||
|
||||
/// <summary>Абсолютный путь к файлу по относительному (с защитой от traversal) или null, если вне корня.</summary>
|
||||
string? ResolveAbsolutePath(string relativePath);
|
||||
}
|
||||
Reference in new issue
Block a user