Add ability to upload (and save) SDH subtitles (#10036)

This commit is contained in:
MBR-0001 2023-07-29 14:52:35 +02:00 committed by GitHub
parent 2d14b065a8
commit 9564248b10
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 2 deletions

View File

@ -90,7 +90,7 @@ public class SubtitleController : BaseJellyfinApiController
[Authorize(Policy = Policies.RequiresElevation)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult<Task> DeleteSubtitle(
public async Task<ActionResult> DeleteSubtitle(
[FromRoute, Required] Guid itemId,
[FromRoute, Required] int index)
{
@ -101,7 +101,7 @@ public class SubtitleController : BaseJellyfinApiController
return NotFound();
}
_subtitleManager.DeleteSubtitles(item, index);
await _subtitleManager.DeleteSubtitles(item, index).ConfigureAwait(false);
return NoContent();
}
@ -416,6 +416,7 @@ public class SubtitleController : BaseJellyfinApiController
Format = body.Format,
Language = body.Language,
IsForced = body.IsForced,
IsHearingImpaired = body.IsHearingImpaired,
Stream = memoryStream
}).ConfigureAwait(false);
_providerManager.QueueRefresh(video.Id, new MetadataRefreshOptions(new DirectoryService(_fileSystem)), RefreshPriority.High);

View File

@ -25,6 +25,12 @@ public class UploadSubtitleDto
[Required]
public bool IsForced { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the subtitle is for hearing impaired.
/// </summary>
[Required]
public bool IsHearingImpaired { get; set; }
/// <summary>
/// Gets or sets the subtitle data.
/// </summary>

View File

@ -14,6 +14,8 @@ namespace MediaBrowser.Controller.Subtitles
public bool IsForced { get; set; }
public bool IsHearingImpaired { get; set; }
public Stream Stream { get; set; }
}
}

View File

@ -200,6 +200,11 @@ namespace MediaBrowser.Providers.Subtitles
saveFileName += ".forced";
}
if (response.IsHearingImpaired)
{
saveFileName += ".sdh";
}
saveFileName += "." + response.Format.ToLowerInvariant();
if (saveInMediaFolder)