using Jellyfin.Plugin.MediaCleaner.Data; using Jellyfin.Plugin.MediaCleaner; using Jellyfin.Plugin.MediaCleaner.Models; using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using System.Collections.Generic; namespace Jellyfin.Plugin.MediaCleaner.Controllers; [Route("mediacleaner/state")] public class StateController(MediaCleanerState state) : Controller { private readonly MediaCleanerState _state = state; private static Configuration Configuration => Plugin.Instance!.Configuration; [HttpGet("getTvSeriesInfo")] public async Task GetTvSeriesInfo() { var tvSeriesInfo = await _state.GetTvSeriesInfo().ConfigureAwait(false); return Ok(tvSeriesInfo); } [HttpGet("getAnimeSeriesInfo")] public async Task GetAnimeSeriesInfo() { var animeSeriesInfo = await _state.GetAnimeSeriesInfo().ConfigureAwait(false); return Ok(animeSeriesInfo); } [HttpGet("getMovieInfo")] public IActionResult GetMovieInfo() => Ok(_state.GetMovieInfo()); [HttpGet("updateState")] public async Task GetUpdateState() { await _state.UpdateState().ConfigureAwait(false); return Ok(); } [HttpGet("getMoviesTitle")] public IActionResult GetMoviesTitle() => Ok($"Stale Movies (Unwatched for and created over {Configuration.StaleMediaCutoff} Days ago.)"); [HttpGet("getSeriesTitle")] public IActionResult GetSeriesTitle() => Ok($"Stale TV Series (Unwatched for and created over {Configuration.StaleMediaCutoff} Days ago.)"); [HttpGet("getAnimeSeriesTitle")] public IActionResult GetAnimeSeriesTitle() => Ok($"Stale Anime Series (Unwatched for and created over {Configuration.StaleMediaCutoff} Days ago.)"); }