Clean up dead code, consolidate duplication, fix redundancies
Remove 9 dead methods, 6 unused constants, and redundant ReaderWriterLockSlim from MetadataCache. Consolidate repeated patterns into HasChapters, IsPlayable, and ToLowerString helpers. Extract shared API methods in SRFApiClient. Move variant manifest rewriting from controller to StreamProxyService. Make Auto quality distinct from HD. Update README architecture section.
This commit is contained in:
@@ -5,6 +5,7 @@ using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Jellyfin.Plugin.SRFPlay.Api;
|
||||
using Jellyfin.Plugin.SRFPlay.Services.Interfaces;
|
||||
using Jellyfin.Plugin.SRFPlay.Utilities;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Jellyfin.Plugin.SRFPlay.Services;
|
||||
@@ -45,7 +46,7 @@ public class ContentRefreshService : IContentRefreshService
|
||||
}
|
||||
|
||||
return await FetchVideosFromShowsAsync(
|
||||
config.BusinessUnit.ToString().ToLowerInvariant(),
|
||||
config.BusinessUnit.ToLowerString(),
|
||||
minEpisodeCount: 0,
|
||||
maxShows: 20,
|
||||
videosPerShow: 1,
|
||||
@@ -69,7 +70,7 @@ public class ContentRefreshService : IContentRefreshService
|
||||
}
|
||||
|
||||
return await FetchVideosFromShowsAsync(
|
||||
config.BusinessUnit.ToString().ToLowerInvariant(),
|
||||
config.BusinessUnit.ToLowerString(),
|
||||
minEpisodeCount: 10,
|
||||
maxShows: 15,
|
||||
videosPerShow: 2,
|
||||
@@ -167,48 +168,4 @@ public class ContentRefreshService : IContentRefreshService
|
||||
|
||||
return urns;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Refreshes all content (latest and trending).
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>Tuple with counts of latest and trending items.</returns>
|
||||
public async Task<(int LatestCount, int TrendingCount)> RefreshAllContentAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
_logger.LogInformation("Starting full content refresh");
|
||||
|
||||
var latestUrns = await RefreshLatestContentAsync(cancellationToken).ConfigureAwait(false);
|
||||
var trendingUrns = await RefreshTrendingContentAsync(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
var latestCount = latestUrns.Count;
|
||||
var trendingCount = trendingUrns.Count;
|
||||
|
||||
_logger.LogInformation(
|
||||
"Content refresh completed. Latest: {LatestCount}, Trending: {TrendingCount}",
|
||||
latestCount,
|
||||
trendingCount);
|
||||
|
||||
return (latestCount, trendingCount);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets content recommendations (combines latest and trending).
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>List of recommended URNs.</returns>
|
||||
public async Task<List<string>> GetRecommendedContentAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
var recommendations = new HashSet<string>();
|
||||
|
||||
var latestUrns = await RefreshLatestContentAsync(cancellationToken).ConfigureAwait(false);
|
||||
var trendingUrns = await RefreshTrendingContentAsync(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
foreach (var urn in latestUrns.Concat(trendingUrns))
|
||||
{
|
||||
recommendations.Add(urn);
|
||||
}
|
||||
|
||||
_logger.LogInformation("Generated {Count} content recommendations", recommendations.Count);
|
||||
return recommendations.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user