Allow only one Jellyfin user to sync data from

This commit is contained in:
DarkFighterLuke
2024-08-30 17:34:26 +02:00
parent fc221e4407
commit 4ffdbaf7f8
3 changed files with 10 additions and 33 deletions
@@ -17,7 +17,6 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
private string _tubeArchivistUrl;
private string _tubeArchivistApiKey;
private HashSet<string> _jfUsernamesTo;
private HashSet<string> _jfUsernamesFrom;
/// <summary>
/// Initializes a new instance of the <see cref="PluginConfiguration"/> class.
@@ -37,10 +36,10 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
_tubeArchivistUrl = string.Empty;
_tubeArchivistApiKey = string.Empty;
MaxDescriptionLength = 500;
JFTASync = false;
JFUsernameFrom = string.Empty;
TAJFSync = false;
_jfUsernamesTo = new HashSet<string>();
JFTASync = false;
_jfUsernamesFrom = new HashSet<string>();
}
/// <summary>
@@ -107,22 +106,9 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
public bool JFTASync { get; set; }
/// <summary>
/// Gets or sets the playback progress owner Jellyfin usernames to synchronize data to TubeArchivist.
/// Gets or sets the playback progress owner Jellyfin username to synchronize data to TubeArchivist.
/// </summary>
public string JFUsernamesFrom
{
get
{
_logger.LogInformation("JFUsernamesFrom configured: {Message}", string.Join(", ", _jfUsernamesFrom));
return string.Join(", ", _jfUsernamesFrom);
}
set
{
value.Replace(" ", string.Empty, StringComparison.CurrentCulture).Split(',').ToList().ForEach(u => _jfUsernamesFrom.Add(u));
_logger.LogInformation("Set JFUsernamesFrom to: {Message}", value);
}
}
public string JFUsernameFrom { get; set; }
/// <summary>
/// Gets or sets the playback progress owners Jellyfin usernames to synchronize data from TubeArchivist.
@@ -142,15 +128,6 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
}
}
/// <summary>
/// Gets the playback progress owner Jellyfin usernames to synchronize data to TubeArchivist.
/// </summary>
/// <returns>An array of usernames.</returns>
public HashSet<string> GetJFUsernamesFromArray()
{
return _jfUsernamesFrom;
}
/// <summary>
/// Gets the playback progress owners Jellyfin usernames to synchronize data from TubeArchivist.
/// </summary>
@@ -51,11 +51,11 @@
</label>
</div>
<div class="inputContainer">
<label class="inputLabel inputLabelUnfocused" for="JFUsernamesFrom">Jellyfin usernames to sync
<label class="inputLabel inputLabelUnfocused" for="JFUsernameFrom">Jellyfin username to sync
playback status from</label>
<input id="JFUsernamesFrom" name="JFUsernamesFrom" type="text" is="emby-input"
<input id="JFUsernameFrom" name="JFUsernameFrom" type="text" is="emby-input"
placeholder="Username1, username2, ..." />
<div class="fieldDescription">These are the (comma separated) Jellyfin usernames to synchronize data from on
<div class="fieldDescription">This is the Jellyfin username to synchronize data from on
TubeArchivist</div>
</div>
<div class="checkboxContainer checkboxContainer-withDescription">
@@ -96,7 +96,7 @@
document.querySelector('#JFTASync').checked = config.JFTASync;
document.querySelector('#JFUsernamesTo').value = config.JFUsernamesTo;
document.querySelector('#TAJFSync').checked = config.TAJFSync;
document.querySelector('#JFUsernamesFrom').value = config.JFUsernamesFrom;
document.querySelector('#JFUsernameFrom').value = config.JFUsernameFrom;
Dashboard.hideLoadingMsg();
});
});
@@ -112,7 +112,7 @@
config.JFTASync = document.querySelector('#JFTASync').checked;
config.JFUsernamesTo = document.querySelector('#JFUsernamesTo').value;
config.TAJFSync = document.querySelector('#TAJFSync').checked;
config.JFUsernamesFrom = document.querySelector('#JFUsernamesFrom').value;
config.JFUsernameFrom = document.querySelector('#JFUsernameFrom').value;
ApiClient.updatePluginConfiguration(TAMetadataConfig.pluginUniqueId, config).then(function (result) {
Dashboard.processPluginConfigurationUpdateResult(result);
});
@@ -132,7 +132,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata
private async void OnPlaybackProgress(object? sender, PlaybackProgressEventArgs eventArgs)
{
if (Instance!.Configuration.JFTASync && eventArgs.Users.Any(u => Instance!.Configuration.GetJFUsernamesFromArray().Contains(u.Username)))
if (Instance!.Configuration.JFTASync && eventArgs.Users.Any(u => Instance!.Configuration.JFUsernameFrom.Equals(u.Username, StringComparison.Ordinal)))
{
BaseItem? channel = LibraryManager.GetItemById(eventArgs.Item.ParentId);
BaseItem? collection = LibraryManager.GetItemById(channel!.ParentId);