Added barebones UI for Media Cleaner
This commit is contained in:
@@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,85 +1,91 @@
|
|||||||
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){
|
||||||
throw new Error(`Response status: ${response.status}`)
|
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 () => {
|
if(!response.ok){
|
||||||
const response = await fetch("/mediacleaner/state/getMovieInfo");
|
throw new Error(`Response status: ${response.status}`)
|
||||||
|
}
|
||||||
|
|
||||||
if(!response.ok){
|
return response.json();
|
||||||
throw new Error(`Response status: ${response.status}`)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return response.json();
|
const updateMediaCleanerState = async () => {
|
||||||
}
|
const response = await fetch("/mediacleaner/state/updateState");
|
||||||
|
|
||||||
const updateMediaCleanerState = async () => {
|
if(!response.ok){
|
||||||
const response = await fetch("/mediacleaner/state/updateState");
|
throw new Error(`Response status: ${response.status}`)
|
||||||
|
}
|
||||||
|
|
||||||
if(!response.ok){
|
return response.json();
|
||||||
throw new Error(`Response status: ${response.status}`)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return response.json();
|
const getMediaCleanerSeriesTitle = async () => {
|
||||||
}
|
const response = await fetch("/mediacleaner/state/getSeriesTitle");
|
||||||
|
|
||||||
const getMediaCleanerSeriesTitle = async () => {
|
if(!response.ok){
|
||||||
const response = await fetch("/mediacleaner/state/getSeriesTitle");
|
throw new Error(`Response status: ${response.status}`);
|
||||||
|
}
|
||||||
|
|
||||||
if(!response.ok){
|
return response.json();
|
||||||
throw new Error(`Response status: ${response.status}`);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return response.json();
|
const getMediaCleanerMoviesTitle = async () => {
|
||||||
}
|
const response = await fetch("/mediacleaner/state/getMoviesTitle");
|
||||||
|
|
||||||
const getMediaCleanerMoviesTitle = async () => {
|
if(!response.ok){
|
||||||
const response = await fetch("/mediacleaner/state/getMoviesTitle");
|
throw new Error(`Response status: ${response.status}`);
|
||||||
|
}
|
||||||
|
|
||||||
if(!response.ok){
|
return response.json();
|
||||||
throw new Error(`Response status: ${response.status}`);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
var cell2 = row.insertCell(1);
|
||||||
var cell2 = row.insertCell(1);
|
cell1.innerHTML = moviesInfo[i].Name;
|
||||||
cell1.innerHTML = moviesInfo[i].Name;
|
cell2.innerHTML = "<button>Delete</button>";
|
||||||
cell2.innerHTML = "<button>Delete</button>";
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
const populateSeriesTable = () => {
|
const populateSeriesTable = () => {
|
||||||
for(let i = 0; i < seriesInfo.length; i++){
|
seriesTable.innerHTML = '';
|
||||||
var row = seriesTable.insertRow(-1);
|
|
||||||
var cell1 = row.insertCell(0);
|
for(let i = 0; i < seriesInfo.length; i++){
|
||||||
var cell2 = row.insertCell(1);
|
var row = seriesTable.insertRow(-1);
|
||||||
var cell3 = row.insertCell(2);
|
var cell1 = row.insertCell(0);
|
||||||
cell1.innerHTML = seriesInfo[i].Name;
|
var cell2 = row.insertCell(1);
|
||||||
cell2.innerHTML = seriesInfo[i].Seasons.map(season => season.replace("Season ", "")).join(", ");
|
var cell3 = row.insertCell(2);
|
||||||
cell3.innerHTML = "<button>Delete</button>";
|
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();
|
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();
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user