Make maximum description length configurable

This commit is contained in:
DarkFighterLuke
2024-03-14 21:47:12 +01:00
parent c3b2512f6a
commit 7e6a757aa1
3 changed files with 20 additions and 3 deletions
@@ -31,6 +31,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
CollectionTitle = string.Empty; CollectionTitle = string.Empty;
_tubeArchivistUrl = string.Empty; _tubeArchivistUrl = string.Empty;
TubeArchivistApiKey = string.Empty; TubeArchivistApiKey = string.Empty;
MaxDescriptionLength = 500;
} }
/// <summary> /// <summary>
@@ -66,5 +67,10 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
/// Gets or sets TubeArchivist API key. /// Gets or sets TubeArchivist API key.
/// </summary> /// </summary>
public string TubeArchivistApiKey { get; set; } public string TubeArchivistApiKey { get; set; }
/// <summary>
/// Gets or sets maximum series and episodes overviews length.
/// </summary>
public int MaxDescriptionLength { get; set; }
} }
} }
@@ -27,6 +27,11 @@
<input id="TubeArchivistApiKey" name="TubeArchivistApiKey" type="text" is="emby-input" /> <input id="TubeArchivistApiKey" name="TubeArchivistApiKey" type="text" is="emby-input" />
<div class="fieldDescription">TubeArchivist API key</div> <div class="fieldDescription">TubeArchivist API key</div>
</div> </div>
<div class="inputContainer">
<label class="inputLabel inputLabelUnfocused" for="MaxDescriptionLength">Maximum overviews length</label>
<input id="MaxDescriptionLength" name="MaxDescriptionLength" type="number" is="emby-input" min="0" />
<div class="fieldDescription">This is the maximum length of the descriptions showed in series and episodes</div>
</div>
<div> <div>
<button is="emby-button" type="submit" class="raised button-submit block emby-button"> <button is="emby-button" type="submit" class="raised button-submit block emby-button">
<span>Save</span> <span>Save</span>
@@ -47,6 +52,7 @@
document.querySelector('#CollectionTitle').value = config.CollectionTitle; document.querySelector('#CollectionTitle').value = config.CollectionTitle;
document.querySelector('#TubeArchivistUrl').value = config.TubeArchivistUrl; document.querySelector('#TubeArchivistUrl').value = config.TubeArchivistUrl;
document.querySelector('#TubeArchivistApiKey').value = config.TubeArchivistApiKey; document.querySelector('#TubeArchivistApiKey').value = config.TubeArchivistApiKey;
document.querySelector('#MaxDescriptionLength').value = config.MaxDescriptionLength;
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
}); });
}); });
@@ -58,6 +64,7 @@
config.CollectionTitle = document.querySelector('#CollectionTitle').value; config.CollectionTitle = document.querySelector('#CollectionTitle').value;
config.TubeArchivistUrl = document.querySelector('#TubeArchivistUrl').value; config.TubeArchivistUrl = document.querySelector('#TubeArchivistUrl').value;
config.TubeArchivistApiKey = document.querySelector('#TubeArchivistApiKey').value; config.TubeArchivistApiKey = document.querySelector('#TubeArchivistApiKey').value;
config.MaxDescriptionLength = document.querySelector('#MaxDescriptionLength').value;
ApiClient.updatePluginConfiguration(TAMetadataConfig.pluginUniqueId, config).then(function (result) { ApiClient.updatePluginConfiguration(TAMetadataConfig.pluginUniqueId, config).then(function (result) {
Dashboard.processPluginConfigurationUpdateResult(result); Dashboard.processPluginConfigurationUpdateResult(result);
}); });
@@ -7,8 +7,6 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Utilities
/// </summary> /// </summary>
public static class Utils public static class Utils
{ {
private static int maxDescriptionChars = 500;
/// <summary> /// <summary>
/// Sanitize the given URL. /// Sanitize the given URL.
/// </summary> /// </summary>
@@ -41,7 +39,13 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Utilities
/// <returns>A string with \n replaced by br tags.</returns> /// <returns>A string with \n replaced by br tags.</returns>
public static string FormatDescription(string description) public static string FormatDescription(string description)
{ {
return description.Replace("\n", "<br>", System.StringComparison.CurrentCulture).Substring(0, maxDescriptionChars); var maxLength = 500;
if (Plugin.Instance != null)
{
maxLength = Plugin.Instance.Configuration.MaxDescriptionLength;
}
return description.Replace("\n", "<br>", System.StringComparison.CurrentCulture).Substring(0, maxLength);
} }
} }
} }