Media-Cleaner-Homepage-and-Api #7

Merged
T-Gander merged 12 commits from Media-Cleaner-Homepage-and-Api into main 2026-01-27 08:16:01 -07:00
2 changed files with 67 additions and 68 deletions
Showing only changes of commit ebe24e2630 - Show all commits

View File

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

View File

@@ -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 = "<button>Delete</button>";
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 = "<button>Delete</button>";
}
}
}
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 = "<button>Delete</button>";
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 = "<button>Delete</button>";
}
}
}
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();
});