diff --git a/Jellyfin.Plugin.MediaCleaner/Data/MediaCleanerState.cs b/Jellyfin.Plugin.MediaCleaner/Data/MediaCleanerState.cs index 7fa61db..4c168df 100644 --- a/Jellyfin.Plugin.MediaCleaner/Data/MediaCleanerState.cs +++ b/Jellyfin.Plugin.MediaCleaner/Data/MediaCleanerState.cs @@ -13,18 +13,11 @@ using Microsoft.Extensions.Logging; namespace Jellyfin.Plugin.MediaCleaner.Data; -public class MediaCleanerState +public class MediaCleanerState(ILogger logger, ILibraryManager libraryManager) { private readonly Lock _lock = new(); private IEnumerable _mediaInfo = []; - private ILogger _logger; - private readonly StaleMediaScanner _staleMediaScanner; - - public MediaCleanerState(ILogger logger, ILibraryManager libraryManager) - { - _logger = logger; - _staleMediaScanner = new(logger, libraryManager); - } + private readonly StaleMediaScanner _staleMediaScanner = new(logger, libraryManager); public async Task UpdateState() { diff --git a/Jellyfin.Plugin.MediaCleaner/Pages/media_cleaner_table.js b/Jellyfin.Plugin.MediaCleaner/Pages/media_cleaner_table.js index 25caa16..1b3d261 100644 --- a/Jellyfin.Plugin.MediaCleaner/Pages/media_cleaner_table.js +++ b/Jellyfin.Plugin.MediaCleaner/Pages/media_cleaner_table.js @@ -1,85 +1,91 @@ -var moviesTitle = document.getElementById("moviesTitle"); -var seriesTitle = document.getElementById("seriesTitle"); -var moviesTable = document.getElementById("moviesTable"); -var seriesTable = document.getElementById("seriesTable"); +document.addEventListener('pageshow', async () => { + var moviesTitle = document.getElementById("moviesTitle"); + var seriesTitle = document.getElementById("seriesTitle"); + var moviesTable = document.getElementById("moviesTable"); + var seriesTable = document.getElementById("seriesTable"); -const getMediaCleanerSeriesInfo = async () => { - const response = await fetch("/mediacleaner/state/getSeriesInfo"); + const getMediaCleanerSeriesInfo = async () => { + const response = await fetch("/mediacleaner/state/getSeriesInfo"); - if(!response.ok){ - throw new Error(`Response status: ${response.status}`) + if(!response.ok){ + throw new Error(`Response status: ${response.status}`) + } + + return response.json(); } - return response.json(); -} + const getMediaCleanerMovieInfo = async () => { + const response = await fetch("/mediacleaner/state/getMovieInfo"); -const getMediaCleanerMovieInfo = async () => { - const response = await fetch("/mediacleaner/state/getMovieInfo"); + if(!response.ok){ + throw new Error(`Response status: ${response.status}`) + } - if(!response.ok){ - throw new Error(`Response status: ${response.status}`) + return response.json(); } - return response.json(); -} + const updateMediaCleanerState = async () => { + const response = await fetch("/mediacleaner/state/updateState"); -const updateMediaCleanerState = async () => { - const response = await fetch("/mediacleaner/state/updateState"); + if(!response.ok){ + throw new Error(`Response status: ${response.status}`) + } - if(!response.ok){ - throw new Error(`Response status: ${response.status}`) + return response.json(); } - return response.json(); -} + const getMediaCleanerSeriesTitle = async () => { + const response = await fetch("/mediacleaner/state/getSeriesTitle"); -const getMediaCleanerSeriesTitle = async () => { - const response = await fetch("/mediacleaner/state/getSeriesTitle"); + if(!response.ok){ + throw new Error(`Response status: ${response.status}`); + } - if(!response.ok){ - throw new Error(`Response status: ${response.status}`); + return response.json(); } - return response.json(); -} + const getMediaCleanerMoviesTitle = async () => { + const response = await fetch("/mediacleaner/state/getMoviesTitle"); -const getMediaCleanerMoviesTitle = async () => { - const response = await fetch("/mediacleaner/state/getMoviesTitle"); + if(!response.ok){ + throw new Error(`Response status: ${response.status}`); + } - if(!response.ok){ - throw new Error(`Response status: ${response.status}`); + return response.json(); } - return response.json(); -} + const populateMoviesTable = () => { + moviesTable.innerHTML = ''; -const populateMoviesTable = () => { - for(let i = 0; i < moviesInfo.length; i++){ - var row = moviesTable.insertRow(-1); - var cell1 = row.insertCell(0); - var cell2 = row.insertCell(1); - cell1.innerHTML = moviesInfo[i].Name; - cell2.innerHTML = ""; + for(let i = 0; i < moviesInfo.length; i++){ + var row = moviesTable.insertRow(-1); + var cell1 = row.insertCell(0); + var cell2 = row.insertCell(1); + cell1.innerHTML = moviesInfo[i].Name; + cell2.innerHTML = ""; + } } -} -const populateSeriesTable = () => { - for(let i = 0; i < seriesInfo.length; i++){ - var row = seriesTable.insertRow(-1); - var cell1 = row.insertCell(0); - var cell2 = row.insertCell(1); - var cell3 = row.insertCell(2); - cell1.innerHTML = seriesInfo[i].Name; - cell2.innerHTML = seriesInfo[i].Seasons.map(season => season.replace("Season ", "")).join(", "); - cell3.innerHTML = ""; + const populateSeriesTable = () => { + seriesTable.innerHTML = ''; + + for(let i = 0; i < seriesInfo.length; i++){ + var row = seriesTable.insertRow(-1); + var cell1 = row.insertCell(0); + var cell2 = row.insertCell(1); + var cell3 = row.insertCell(2); + cell1.innerHTML = seriesInfo[i].Name; + cell2.innerHTML = seriesInfo[i].Seasons.map(season => season.replace("Season ", "")).join(", "); + cell3.innerHTML = ""; + } } -} -moviesTitle.innerHTML = await getMediaCleanerMoviesTitle(); -seriesTitle.innerHTML = await getMediaCleanerSeriesTitle(); + moviesTitle.innerHTML = await getMediaCleanerMoviesTitle(); + seriesTitle.innerHTML = await getMediaCleanerSeriesTitle(); -await updateMediaCleanerState(); -var moviesInfo = await getMediaCleanerMovieInfo(); -var seriesInfo = await getMediaCleanerSeriesInfo(); -populateMoviesTable(); -populateSeriesTable(); + await updateMediaCleanerState(); + var moviesInfo = await getMediaCleanerMovieInfo(); + var seriesInfo = await getMediaCleanerSeriesInfo(); + populateMoviesTable(); + populateSeriesTable(); +});