Added barebones UI for Media Cleaner

This commit is contained in:
2026-01-25 15:07:55 -07:00
parent 04ef815a9b
commit ebe24e2630
2 changed files with 67 additions and 68 deletions

View File

@@ -13,18 +13,11 @@ using Microsoft.Extensions.Logging;
namespace Jellyfin.Plugin.MediaCleaner.Data; namespace Jellyfin.Plugin.MediaCleaner.Data;
public class MediaCleanerState public class MediaCleanerState(ILogger<StaleMediaScanner> logger, ILibraryManager libraryManager)
{ {
private readonly Lock _lock = new(); private readonly Lock _lock = new();
private IEnumerable<MediaInfo> _mediaInfo = []; private IEnumerable<MediaInfo> _mediaInfo = [];
private ILogger<StaleMediaScanner> _logger; private readonly StaleMediaScanner _staleMediaScanner = new(logger, libraryManager);
private readonly StaleMediaScanner _staleMediaScanner;
public MediaCleanerState(ILogger<StaleMediaScanner> logger, ILibraryManager libraryManager)
{
_logger = logger;
_staleMediaScanner = new(logger, libraryManager);
}
public async Task UpdateState() public async Task UpdateState()
{ {

View File

@@ -1,9 +1,10 @@
var moviesTitle = document.getElementById("moviesTitle"); document.addEventListener('pageshow', async () => {
var seriesTitle = document.getElementById("seriesTitle"); var moviesTitle = document.getElementById("moviesTitle");
var moviesTable = document.getElementById("moviesTable"); var seriesTitle = document.getElementById("seriesTitle");
var seriesTable = document.getElementById("seriesTable"); var moviesTable = document.getElementById("moviesTable");
var seriesTable = document.getElementById("seriesTable");
const getMediaCleanerSeriesInfo = async () => { const getMediaCleanerSeriesInfo = async () => {
const response = await fetch("/mediacleaner/state/getSeriesInfo"); const response = await fetch("/mediacleaner/state/getSeriesInfo");
if(!response.ok){ if(!response.ok){
@@ -11,9 +12,9 @@ const getMediaCleanerSeriesInfo = async () => {
} }
return response.json(); return response.json();
} }
const getMediaCleanerMovieInfo = async () => { const getMediaCleanerMovieInfo = async () => {
const response = await fetch("/mediacleaner/state/getMovieInfo"); const response = await fetch("/mediacleaner/state/getMovieInfo");
if(!response.ok){ if(!response.ok){
@@ -21,9 +22,9 @@ const getMediaCleanerMovieInfo = async () => {
} }
return response.json(); return response.json();
} }
const updateMediaCleanerState = async () => { const updateMediaCleanerState = async () => {
const response = await fetch("/mediacleaner/state/updateState"); const response = await fetch("/mediacleaner/state/updateState");
if(!response.ok){ if(!response.ok){
@@ -31,9 +32,9 @@ const updateMediaCleanerState = async () => {
} }
return response.json(); return response.json();
} }
const getMediaCleanerSeriesTitle = async () => { const getMediaCleanerSeriesTitle = async () => {
const response = await fetch("/mediacleaner/state/getSeriesTitle"); const response = await fetch("/mediacleaner/state/getSeriesTitle");
if(!response.ok){ if(!response.ok){
@@ -41,9 +42,9 @@ const getMediaCleanerSeriesTitle = async () => {
} }
return response.json(); return response.json();
} }
const getMediaCleanerMoviesTitle = async () => { const getMediaCleanerMoviesTitle = async () => {
const response = await fetch("/mediacleaner/state/getMoviesTitle"); const response = await fetch("/mediacleaner/state/getMoviesTitle");
if(!response.ok){ if(!response.ok){
@@ -51,9 +52,11 @@ const getMediaCleanerMoviesTitle = async () => {
} }
return response.json(); return response.json();
} }
const populateMoviesTable = () => {
moviesTable.innerHTML = '';
const populateMoviesTable = () => {
for(let i = 0; i < moviesInfo.length; i++){ for(let i = 0; i < moviesInfo.length; i++){
var row = moviesTable.insertRow(-1); var row = moviesTable.insertRow(-1);
var cell1 = row.insertCell(0); var cell1 = row.insertCell(0);
@@ -61,9 +64,11 @@ const populateMoviesTable = () => {
cell1.innerHTML = moviesInfo[i].Name; cell1.innerHTML = moviesInfo[i].Name;
cell2.innerHTML = "<button>Delete</button>"; cell2.innerHTML = "<button>Delete</button>";
} }
} }
const populateSeriesTable = () => {
seriesTable.innerHTML = '';
const populateSeriesTable = () => {
for(let i = 0; i < seriesInfo.length; i++){ for(let i = 0; i < seriesInfo.length; i++){
var row = seriesTable.insertRow(-1); var row = seriesTable.insertRow(-1);
var cell1 = row.insertCell(0); var cell1 = row.insertCell(0);
@@ -73,13 +78,14 @@ const populateSeriesTable = () => {
cell2.innerHTML = seriesInfo[i].Seasons.map(season => season.replace("Season ", "")).join(", "); cell2.innerHTML = seriesInfo[i].Seasons.map(season => season.replace("Season ", "")).join(", ");
cell3.innerHTML = "<button>Delete</button>"; cell3.innerHTML = "<button>Delete</button>";
} }
} }
moviesTitle.innerHTML = await getMediaCleanerMoviesTitle(); moviesTitle.innerHTML = await getMediaCleanerMoviesTitle();
seriesTitle.innerHTML = await getMediaCleanerSeriesTitle(); seriesTitle.innerHTML = await getMediaCleanerSeriesTitle();
await updateMediaCleanerState(); await updateMediaCleanerState();
var moviesInfo = await getMediaCleanerMovieInfo(); var moviesInfo = await getMediaCleanerMovieInfo();
var seriesInfo = await getMediaCleanerSeriesInfo(); var seriesInfo = await getMediaCleanerSeriesInfo();
populateMoviesTable(); populateMoviesTable();
populateSeriesTable(); populateSeriesTable();
});