Update TrackRepository.cs

This commit is contained in:
Zoe Roux 2020-12-19 22:26:51 +01:00
parent 2f61b57d4f
commit dfd6f3e28e

View File

@ -36,7 +36,7 @@ namespace Kyoo.Controllers
await _database.DisposeAsync(); await _database.DisposeAsync();
} }
public override Task<Track> Get(string slug) public override Task<Track> Get(string slug, StreamType type = StreamType.Unknow)
{ {
Match match = Regex.Match(slug, Match match = Regex.Match(slug,
@"(?<show>.*)-s(?<season>\d+)e(?<episode>\d+)\.(?<language>.{0,3})(?<forced>-forced)?(\..*)?"); @"(?<show>.*)-s(?<season>\d+)e(?<episode>\d+)\.(?<language>.{0,3})(?<forced>-forced)?(\..*)?");
@ -56,12 +56,22 @@ namespace Kyoo.Controllers
int episodeNumber = match.Groups["episode"].Success ? int.Parse(match.Groups["episode"].Value) : -1; int episodeNumber = match.Groups["episode"].Success ? int.Parse(match.Groups["episode"].Value) : -1;
string language = match.Groups["language"].Value; string language = match.Groups["language"].Value;
bool forced = match.Groups["forced"].Success; bool forced = match.Groups["forced"].Success;
if (type == StreamType.Unknow)
{
return _database.Tracks.FirstOrDefaultAsync(x => x.Episode.Show.Slug == showSlug return _database.Tracks.FirstOrDefaultAsync(x => x.Episode.Show.Slug == showSlug
&& x.Episode.SeasonNumber == seasonNumber && x.Episode.SeasonNumber == seasonNumber
&& x.Episode.EpisodeNumber == episodeNumber && x.Episode.EpisodeNumber == episodeNumber
&& x.Language == language && x.Language == language
&& x.IsForced == forced); && x.IsForced == forced);
} }
return _database.Tracks.FirstOrDefaultAsync(x => x.Episode.Show.Slug == showSlug
&& x.Episode.SeasonNumber == seasonNumber
&& x.Episode.EpisodeNumber == episodeNumber
&& x.Type == type
&& x.Language == language
&& x.IsForced == forced);
}
public Task<ICollection<Track>> Search(string query) public Task<ICollection<Track>> Search(string query)
{ {