Files
qbtmud/Lantean.QBTMudBlade/Components/Options/RSSOptions.razor.cs
2024-05-03 14:59:52 +01:00

91 lines
3.3 KiB
C#

using Microsoft.AspNetCore.Components;
using MudBlazor;
namespace Lantean.QBTMudBlade.Components.Options
{
public partial class RSSOptions : Options
{
[Inject]
public IDialogService DialogService { get; set; } = default!;
protected bool RssProcessingEnabled { get; private set; }
protected int RssRefreshInterval { get; private set; }
protected long RssFetchDelay { get; private set; }
protected int RssMaxArticlesPerFeed { get; private set; }
protected bool RssAutoDownloadingEnabled { get; private set; }
protected bool RssDownloadRepackProperEpisodes { get; private set; }
protected string? RssSmartEpisodeFilters { get; private set; }
protected override bool SetOptions()
{
if (Preferences is null)
{
return false;
}
RssProcessingEnabled = Preferences.RssProcessingEnabled;
RssRefreshInterval = Preferences.RssRefreshInterval;
RssFetchDelay = Preferences.RssFetchDelay;
RssMaxArticlesPerFeed = Preferences.RssMaxArticlesPerFeed;
RssAutoDownloadingEnabled = Preferences.RssAutoDownloadingEnabled;
RssDownloadRepackProperEpisodes = Preferences.RssDownloadRepackProperEpisodes;
RssSmartEpisodeFilters = Preferences.RssSmartEpisodeFilters;
return true;
}
protected async Task RssProcessingEnabledChanged(bool value)
{
RssProcessingEnabled = value;
UpdatePreferences.RssProcessingEnabled = value;
await PreferencesChanged.InvokeAsync(UpdatePreferences);
}
protected async Task RssRefreshIntervalChanged(int value)
{
RssRefreshInterval = value;
UpdatePreferences.RssRefreshInterval = value;
await PreferencesChanged.InvokeAsync(UpdatePreferences);
}
protected async Task RssFetchDelayChanged(int value)
{
RssFetchDelay = value;
UpdatePreferences.RssFetchDelay = value;
await PreferencesChanged.InvokeAsync(UpdatePreferences);
}
protected async Task RssMaxArticlesPerFeedChanged(int value)
{
RssMaxArticlesPerFeed = value;
UpdatePreferences.RssMaxArticlesPerFeed = value;
await PreferencesChanged.InvokeAsync(UpdatePreferences);
}
protected async Task RssAutoDownloadingEnabledChanged(bool value)
{
RssAutoDownloadingEnabled = value;
UpdatePreferences.RssAutoDownloadingEnabled = value;
await PreferencesChanged.InvokeAsync(UpdatePreferences);
}
protected async Task RssDownloadRepackProperEpisodesChanged(bool value)
{
RssDownloadRepackProperEpisodes = value;
UpdatePreferences.RssDownloadRepackProperEpisodes = value;
await PreferencesChanged.InvokeAsync(UpdatePreferences);
}
protected async Task RssSmartEpisodeFiltersChanged(string value)
{
RssSmartEpisodeFilters = value;
UpdatePreferences.RssSmartEpisodeFilters = value;
await PreferencesChanged.InvokeAsync(UpdatePreferences);
}
protected async Task OpenRssRulesDialog()
{
await DialogService.InvokeRssRulesDialog();
}
}
}