mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-31 12:14:46 -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
|
//Register values
|
||||||
long RegisterCollection(Collection collection);
|
long RegisterCollection(Collection collection);
|
||||||
long RegisterShow(Show show);
|
long RegisterShow(Show show);
|
||||||
|
long RegisterMovie(Episode movie);
|
||||||
long RegisterSeason(Season season);
|
long RegisterSeason(Season season);
|
||||||
long RegisterEpisode(Episode episode);
|
long RegisterEpisode(Episode episode);
|
||||||
long RegisterTrack(Track track);
|
long RegisterTrack(Track track);
|
||||||
|
@ -10,7 +10,7 @@ namespace Kyoo.Models
|
|||||||
[JsonIgnore] public long ID { get; set; }
|
[JsonIgnore] public long ID { get; set; }
|
||||||
[JsonIgnore] public long ShowID { get; set; }
|
[JsonIgnore] public long ShowID { get; set; }
|
||||||
[JsonIgnore] public virtual Show Show { 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; }
|
[JsonIgnore] public virtual Season Season { get; set; }
|
||||||
|
|
||||||
public long SeasonNumber { get; set; }
|
public long SeasonNumber { get; set; }
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using Kyoo.Models;
|
using Kyoo.Models;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -84,7 +85,7 @@ namespace Kyoo.Controllers
|
|||||||
bool isMovie = seasonNumber == -1 && episodeNumber == -1 && absoluteNumber == -1;
|
bool isMovie = seasonNumber == -1 && episodeNumber == -1 && absoluteNumber == -1;
|
||||||
Show show = await GetShow(showName, showPath, isMovie, library);
|
Show show = await GetShow(showName, showPath, isMovie, library);
|
||||||
if (isMovie)
|
if (isMovie)
|
||||||
_libraryManager.RegisterShow(show);
|
_libraryManager.RegisterMovie(await GetMovie(show, path));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Season season = await GetSeason(show, seasonNumber, library);
|
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.");
|
Console.Error.WriteLine("\tError: You don't have any provider that support absolute epiode numbering. Install one and try again.");
|
||||||
return null;
|
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);
|
IEnumerable<Track> tracks = await _transcoder.GetTrackInfo(episode.Path);
|
||||||
List<Track> epTracks = tracks.Where(x => x.Type != StreamType.Subtitle).Concat(GetExtractedSubtitles(episode)).ToList();
|
List<Track> epTracks = tracks.Where(x => x.Type != StreamType.Subtitle).Concat(GetExtractedSubtitles(episode)).ToList();
|
||||||
if (epTracks.Count(x => !x.IsExternal) < tracks.Count())
|
if (epTracks.Count(x => !x.IsExternal) < tracks.Count())
|
||||||
epTracks.AddRange(await _transcoder.ExtractSubtitles(episode.Path));
|
epTracks.AddRange(await _transcoder.ExtractSubtitles(episode.Path));
|
||||||
episode.Tracks = epTracks;
|
episode.Tracks = epTracks;
|
||||||
return episode;
|
return epTracks;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IEnumerable<Track> GetExtractedSubtitles(Episode episode)
|
private static IEnumerable<Track> GetExtractedSubtitles(Episode episode)
|
||||||
|
@ -328,6 +328,16 @@ namespace Kyoo.Controllers
|
|||||||
return show.ID;
|
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)
|
public long RegisterSeason(Season season)
|
||||||
{
|
{
|
||||||
if (season == null)
|
if (season == null)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user