Make overwriting existing EDL files optional

This commit is contained in:
ConfusedPolarBear 2022-06-20 01:39:56 -05:00
parent 9dbe684790
commit b83fcdd3a1
3 changed files with 34 additions and 7 deletions

View File

@ -31,6 +31,11 @@ public class PluginConfiguration : BasePluginConfiguration
/// </summary>
public EdlAction EdlAction { get; set; } = EdlAction.None;
/// <summary>
/// Gets or sets a value indicating whether or not to overwrite existing EDL files.
/// </summary>
public bool OverwriteExistingEdlFiles { get; set; } = false;
// ===== Playback settings =====
/// <summary>

View File

@ -70,10 +70,20 @@
If set to a value other than None, specifies which action to write to
<a href="https://kodi.wiki/view/Edit_decision_list">MPlayer compatible EDL files</a>
alongside your episode files. <br />
<strong>
If this value is changed from None, the plugin will overwrite any EDL files
associated with your episode files.
</strong>
If this value is changed after EDL files are generated, you must either manually delete
the EDL files or check the "Overwrite existing EDL files" checkbox below.
</div>
</div>
<div class="checkboxContainer checkboxContainer-withDescription">
<label class="emby-checkbox-label">
<input id="OverwriteEdl" type="checkbox" is="emby-checkbox" />
<span>Overwrite existing EDL files</span>
</label>
<div class="fieldDescription">
If checked, the plugin will overwrite any EDL files associated with your episode files.
</div>
</div>
</fieldset>
@ -477,7 +487,9 @@
ApiClient.getPluginConfiguration("c83d86bb-a1e0-4c35-a113-e2101cf4ee6b").then(function (config) {
document.querySelector('#AutoSkip').checked = config.AutoSkip;
document.querySelector('#MaxParallelism').value = config.MaxParallelism;
document.querySelector('#EdlAction').value = config.EdlAction;
document.querySelector('#OverwriteEdl').checked = config.OverwriteExistingEdlFiles;
document.querySelector('#CacheFingerprints').checked = config.CacheFingerprints;
document.querySelector('#ShowPromptAdjustment').value = config.ShowPromptAdjustment;
@ -493,15 +505,18 @@
ApiClient.getPluginConfiguration("c83d86bb-a1e0-4c35-a113-e2101cf4ee6b").then(function (config) {
config.AutoSkip = document.querySelector('#AutoSkip').checked;
config.MaxParallelism = document.querySelector('#MaxParallelism').value;
config.EdlAction = document.querySelector('#EdlAction').value;
config.OverwriteExistingEdlFiles = document.querySelector('#OverwriteEdl').checked;
config.CacheFingerprints = document.querySelector('#CacheFingerprints').checked;
config.ShowPromptAdjustment = document.querySelector("#ShowPromptAdjustment").value;
config.HidePromptAdjustment = document.querySelector("#HidePromptAdjustment").value;
ApiClient.updatePluginConfiguration("c83d86bb-a1e0-4c35-a113-e2101cf4ee6b", config).then(function (result) {
Dashboard.processPluginConfigurationUpdateResult(result);
});
ApiClient.updatePluginConfiguration("c83d86bb-a1e0-4c35-a113-e2101cf4ee6b", config)
.then(function (result) {
Dashboard.processPluginConfigurationUpdateResult(result);
});
});
e.preventDefault();

View File

@ -26,6 +26,7 @@ public static class EdlManager
/// <param name="episodes">Episodes to update EDL files for.</param>
public static void UpdateEDLFiles(ReadOnlyCollection<QueuedEpisode> episodes)
{
var overwrite = Plugin.Instance!.Configuration.OverwriteExistingEdlFiles;
var action = Plugin.Instance!.Configuration.EdlAction;
if (action == EdlAction.None)
{
@ -43,6 +44,12 @@ public static class EdlManager
_logger?.LogTrace("Episode {Id} has EDL path {Path}", id, edlPath);
if (!overwrite && File.Exists(edlPath))
{
_logger?.LogTrace("Refusing to overwrite existing EDL file {Path}", edlPath);
continue;
}
File.WriteAllText(edlPath, intro.ToEdl(action));
}
}