mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
Implementing movies inside the database
This commit is contained in:
parent
5aa222d799
commit
d5925f386b
@ -53,6 +53,7 @@ namespace Kyoo.Controllers
|
||||
//Register values
|
||||
long RegisterCollection(Collection collection);
|
||||
long RegisterShow(Show show);
|
||||
long RegisterMovie(Episode movie);
|
||||
long RegisterSeason(Season season);
|
||||
long RegisterEpisode(Episode episode);
|
||||
long RegisterTrack(Track track);
|
||||
|
@ -10,7 +10,7 @@ namespace Kyoo.Models
|
||||
[JsonIgnore] public long ID { get; set; }
|
||||
[JsonIgnore] public long ShowID { get; set; }
|
||||
[JsonIgnore] public virtual Show Show { get; set; }
|
||||
[JsonIgnore] public long SeasonID { get; set; }
|
||||
[JsonIgnore] public long? SeasonID { get; set; }
|
||||
[JsonIgnore] public virtual Season Season { get; set; }
|
||||
|
||||
public long SeasonNumber { get; set; }
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Kyoo.Models;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using System.Collections.Generic;
|
||||
@ -84,7 +85,7 @@ namespace Kyoo.Controllers
|
||||
bool isMovie = seasonNumber == -1 && episodeNumber == -1 && absoluteNumber == -1;
|
||||
Show show = await GetShow(showName, showPath, isMovie, library);
|
||||
if (isMovie)
|
||||
_libraryManager.RegisterShow(show);
|
||||
_libraryManager.RegisterMovie(await GetMovie(show, path));
|
||||
else
|
||||
{
|
||||
Season season = await GetSeason(show, seasonNumber, library);
|
||||
@ -138,13 +139,29 @@ namespace Kyoo.Controllers
|
||||
Console.Error.WriteLine("\tError: You don't have any provider that support absolute epiode numbering. Install one and try again.");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
await GetTracks(episode);
|
||||
return episode;
|
||||
}
|
||||
|
||||
private async Task<Episode> GetMovie(Show show, string episodePath)
|
||||
{
|
||||
Episode episode = new Episode();
|
||||
episode.Title = show.Title;
|
||||
episode.Path = episodePath;
|
||||
episode.Show = show;
|
||||
episode.Tracks = await GetTracks(episode);
|
||||
return episode;
|
||||
}
|
||||
|
||||
private async Task<IEnumerable<Track>> GetTracks(Episode episode)
|
||||
{
|
||||
IEnumerable<Track> tracks = await _transcoder.GetTrackInfo(episode.Path);
|
||||
List<Track> epTracks = tracks.Where(x => x.Type != StreamType.Subtitle).Concat(GetExtractedSubtitles(episode)).ToList();
|
||||
if (epTracks.Count(x => !x.IsExternal) < tracks.Count())
|
||||
epTracks.AddRange(await _transcoder.ExtractSubtitles(episode.Path));
|
||||
episode.Tracks = epTracks;
|
||||
return episode;
|
||||
return epTracks;
|
||||
}
|
||||
|
||||
private static IEnumerable<Track> GetExtractedSubtitles(Episode episode)
|
||||
|
@ -328,6 +328,16 @@ namespace Kyoo.Controllers
|
||||
return show.ID;
|
||||
}
|
||||
|
||||
public long RegisterMovie(Episode movie)
|
||||
{
|
||||
if (movie == null)
|
||||
return 0;
|
||||
if (_database.Entry(movie).State == EntityState.Detached)
|
||||
_database.Episodes.Add(movie);
|
||||
_database.SaveChanges();
|
||||
return movie.ID;
|
||||
}
|
||||
|
||||
public long RegisterSeason(Season season)
|
||||
{
|
||||
if (season == null)
|
||||
|
Loading…
x
Reference in New Issue
Block a user