Skip to content

Commit

Permalink
Series and Season cooldown days settings
Browse files Browse the repository at this point in the history
Don't consider when series and season were added to JF, only days since refresh.
  • Loading branch information
SenorSmartyPants committed Dec 29, 2022
1 parent 48e7b34 commit e7206c9
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public PluginConfiguration()
ReplaceAllMetadata = false;

// series defaults
SeriesCooldownDays = 30;
SeriesStatusDays = 180;
SeriesMinimumProviderIds = 0;
SeriesOverview = true;
Expand All @@ -38,6 +39,7 @@ public PluginConfiguration()
SeriesReplaceAllMetadata = false;

// season defaults
SeasonCooldownDays = 30;
SeasonMinimumProviderIds = 0;
SeasonOverview = true;
SeasonName = false;
Expand Down Expand Up @@ -76,6 +78,8 @@ public PluginConfiguration()
public string SeriesBlockList { get; set; }

// Series settings
public int SeriesCooldownDays { get; set; }

public int SeriesStatusDays { get; set; }

public int SeriesMinimumProviderIds { get; set; }
Expand All @@ -99,6 +103,8 @@ public PluginConfiguration()
public bool SeriesReplaceAllMetadata { get; set; }

// Season settings
public int SeasonCooldownDays { get; set; }

public int SeasonMinimumProviderIds { get; set; }

public bool SeasonOverview { get; set; }
Expand Down
16 changes: 16 additions & 0 deletions Jellyfin.Plugin.RefreshSparse/Configuration/configPage.html
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,12 @@ <h3>Name</h3>
<h3>Series</h3>
</legend>

<div class="inputContainer">
<label class="inputLabel inputLabelUnfocused" for="SeriesCooldownDays">Refresh cooldown</label>
<input id="SeriesCooldownDays" name="SeriesCooldownDays" type="number" is="emby-input" min="-1" />
<div class="fieldDescription">Don't refresh series if already refreshed within X <b>Days</b>. -1 to disable</div>
</div>

<div class="inputContainer">
<label class="inputLabel inputLabelUnfocused" for="SeriesStatusDays">Status</label>
<input id="SeriesStatusDays" name="SeriesStatusDays" type="number" is="emby-input" min="-1" />
Expand Down Expand Up @@ -173,6 +179,12 @@ <h3 class="checkboxListLabel">Missing Images</h3>
<h3>Seasons</h3>
</legend>

<div class="inputContainer">
<label class="inputLabel inputLabelUnfocused" for="SeasonCooldownDays">Refresh cooldown</label>
<input id="SeasonCooldownDays" name="SeasonCooldownDays" type="number" is="emby-input" min="-1" />
<div class="fieldDescription">Don't refresh season if already refreshed within X <b>Days</b>. -1 to disable</div>
</div>

<div class="inputContainer">
<label class="inputLabel inputLabelUnfocused" for="SeasonMinimumProviderIds">Minimum provider IDs</label>
<input id="SeasonMinimumProviderIds" name="SeasonMinimumProviderIds" type="number" is="emby-input" min="0" />
Expand Down Expand Up @@ -275,6 +287,7 @@ <h3 class="checkboxListLabel">Missing Images</h3>
document.querySelector('#SeriesThumb').checked = config.SeriesThumb;
document.querySelector('#SeriesBackdrop').checked = config.SeriesBackdrop;

document.querySelector('#SeriesCooldownDays').value = config.SeriesCooldownDays;
document.querySelector('#SeriesReplaceAllImages').checked = config.SeriesReplaceAllImages;
document.querySelector('#SeriesReplaceAllMetadata').checked = config.SeriesReplaceAllMetadata;

Expand All @@ -288,6 +301,7 @@ <h3 class="checkboxListLabel">Missing Images</h3>
document.querySelector('#SeasonThumb').checked = config.SeasonThumb;
document.querySelector('#SeasonBackdrop').checked = config.SeasonBackdrop;

document.querySelector('#SeasonCooldownDays').value = config.SeasonCooldownDays;
document.querySelector('#SeasonReplaceAllImages').checked = config.SeasonReplaceAllImages;
document.querySelector('#SeasonReplaceAllMetadata').checked = config.SeasonReplaceAllMetadata;

Expand Down Expand Up @@ -328,6 +342,7 @@ <h3 class="checkboxListLabel">Missing Images</h3>
config.SeriesThumb = document.querySelector('#SeriesThumb').checked;
config.SeriesBackdrop = document.querySelector('#SeriesBackdrop').checked;

config.SeriesCooldownDays = document.querySelector('#SeriesCooldownDays').value;
config.SeriesReplaceAllImages = document.querySelector('#SeriesReplaceAllImages').checked;
config.SeriesReplaceAllMetadata = document.querySelector('#SeriesReplaceAllMetadata').checked;

Expand All @@ -341,6 +356,7 @@ <h3 class="checkboxListLabel">Missing Images</h3>
config.SeasonThumb = document.querySelector('#SeasonThumb').checked;
config.SeasonBackdrop = document.querySelector('#SeasonBackdrop').checked;

config.SeasonCooldownDays = document.querySelector('#SeasonCooldownDays').value;
config.SeasonReplaceAllImages = document.querySelector('#SeasonReplaceAllImages').checked;
config.SeasonReplaceAllMetadata = document.querySelector('#SeasonReplaceAllMetadata').checked;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,31 +38,18 @@ public RefreshSeasonTask(

protected override IEnumerable<Season> GetItems()
{
// episodes that aired in the past MaxDays days
// or added to JF in MaxDays
DateTime? minDate = null;
var maxDays = PluginConfig.MaxDays;
if (maxDays > -1 )
{
minDate = DateTime.UtcNow.Date.AddDays(-(double)maxDays);
}

// todo mindatecreated? don't care, just time since last refresh?
// minutes since refresh?
return LibraryManager.GetItemList(
new InternalItemsQuery
{
IncludeItemTypes = new[] { BaseItemKind.Season },
IsVirtualItem = false,
Recursive = true,
MinDateCreated = minDate,
OrderBy = new[]
{
(ItemSortBy.SeriesSortName, SortOrder.Ascending),
(ItemSortBy.SortName, SortOrder.Ascending)
}
}).Cast<Season>().Where(i => (maxDays == -1 || i.PremiereDate >= minDate || !i.PremiereDate.HasValue)
&& MinutesSinceRefresh(i) > PluginConfig.RefreshCooldownMinutes
}).Cast<Season>().Where(i => DaysSinceRefresh(i) > PluginConfig.SeasonCooldownDays
&& !SeriesBlockList.Any(sbl => i.SeriesName.Equals(sbl, StringComparison.OrdinalIgnoreCase))
&& NeedsRefresh(i));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,30 +37,17 @@ public RefreshSeriesTask(

protected override IEnumerable<Series> GetItems()
{
// episodes that aired in the past MaxDays days
// or added to JF in MaxDays
DateTime? minDate = null;
var maxDays = PluginConfig.MaxDays;
if (maxDays > -1 )
{
minDate = DateTime.UtcNow.Date.AddDays(-(double)maxDays);
}

// todo mindatecreated? don't care, just time since last refresh?
// minutes since refresh?
return LibraryManager.GetItemList(
new InternalItemsQuery
{
IncludeItemTypes = new[] { BaseItemKind.Series },
IsVirtualItem = false,
Recursive = true,
MinDateCreated = minDate,
OrderBy = new[]
{
(ItemSortBy.SortName, SortOrder.Ascending)
}
}).Cast<Series>().Where(i => (maxDays == -1 || i.PremiereDate >= minDate || !i.PremiereDate.HasValue)
&& MinutesSinceRefresh(i) > PluginConfig.RefreshCooldownMinutes
}).Cast<Series>().Where(i => DaysSinceRefresh(i) > PluginConfig.SeriesCooldownDays
&& !SeriesBlockList.Any(sbl => i.Name.Equals(sbl, StringComparison.OrdinalIgnoreCase))
&& NeedsRefresh(i));
}
Expand Down

0 comments on commit e7206c9

Please sign in to comment.