Allow only one Jellyfin user to sync data from
This commit is contained in:
@@ -17,7 +17,6 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
|
|||||||
private string _tubeArchivistUrl;
|
private string _tubeArchivistUrl;
|
||||||
private string _tubeArchivistApiKey;
|
private string _tubeArchivistApiKey;
|
||||||
private HashSet<string> _jfUsernamesTo;
|
private HashSet<string> _jfUsernamesTo;
|
||||||
private HashSet<string> _jfUsernamesFrom;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="PluginConfiguration"/> class.
|
/// Initializes a new instance of the <see cref="PluginConfiguration"/> class.
|
||||||
@@ -37,10 +36,10 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
|
|||||||
_tubeArchivistUrl = string.Empty;
|
_tubeArchivistUrl = string.Empty;
|
||||||
_tubeArchivistApiKey = string.Empty;
|
_tubeArchivistApiKey = string.Empty;
|
||||||
MaxDescriptionLength = 500;
|
MaxDescriptionLength = 500;
|
||||||
|
JFTASync = false;
|
||||||
|
JFUsernameFrom = string.Empty;
|
||||||
TAJFSync = false;
|
TAJFSync = false;
|
||||||
_jfUsernamesTo = new HashSet<string>();
|
_jfUsernamesTo = new HashSet<string>();
|
||||||
JFTASync = false;
|
|
||||||
_jfUsernamesFrom = new HashSet<string>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -107,22 +106,9 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
|
|||||||
public bool JFTASync { get; set; }
|
public bool JFTASync { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <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>
|
/// </summary>
|
||||||
public string JFUsernamesFrom
|
public string JFUsernameFrom { get; set; }
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the playback progress owners Jellyfin usernames to synchronize data from TubeArchivist.
|
/// 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>
|
/// <summary>
|
||||||
/// Gets the playback progress owners Jellyfin usernames to synchronize data from TubeArchivist.
|
/// Gets the playback progress owners Jellyfin usernames to synchronize data from TubeArchivist.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -51,11 +51,11 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="inputContainer">
|
<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>
|
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, ..." />
|
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>
|
TubeArchivist</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
document.querySelector('#JFTASync').checked = config.JFTASync;
|
document.querySelector('#JFTASync').checked = config.JFTASync;
|
||||||
document.querySelector('#JFUsernamesTo').value = config.JFUsernamesTo;
|
document.querySelector('#JFUsernamesTo').value = config.JFUsernamesTo;
|
||||||
document.querySelector('#TAJFSync').checked = config.TAJFSync;
|
document.querySelector('#TAJFSync').checked = config.TAJFSync;
|
||||||
document.querySelector('#JFUsernamesFrom').value = config.JFUsernamesFrom;
|
document.querySelector('#JFUsernameFrom').value = config.JFUsernameFrom;
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
config.JFTASync = document.querySelector('#JFTASync').checked;
|
config.JFTASync = document.querySelector('#JFTASync').checked;
|
||||||
config.JFUsernamesTo = document.querySelector('#JFUsernamesTo').value;
|
config.JFUsernamesTo = document.querySelector('#JFUsernamesTo').value;
|
||||||
config.TAJFSync = document.querySelector('#TAJFSync').checked;
|
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) {
|
ApiClient.updatePluginConfiguration(TAMetadataConfig.pluginUniqueId, config).then(function (result) {
|
||||||
Dashboard.processPluginConfigurationUpdateResult(result);
|
Dashboard.processPluginConfigurationUpdateResult(result);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata
|
|||||||
|
|
||||||
private async void OnPlaybackProgress(object? sender, PlaybackProgressEventArgs eventArgs)
|
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? channel = LibraryManager.GetItemById(eventArgs.Item.ParentId);
|
||||||
BaseItem? collection = LibraryManager.GetItemById(channel!.ParentId);
|
BaseItem? collection = LibraryManager.GetItemById(channel!.ParentId);
|
||||||
|
|||||||
Reference in New Issue
Block a user