diff --git a/Kyoo/ClientApp/src/app/app.component.html b/Kyoo/ClientApp/src/app/app.component.html index e71d5ce2..5e641f4a 100644 --- a/Kyoo/ClientApp/src/app/app.component.html +++ b/Kyoo/ClientApp/src/app/app.component.html @@ -1,10 +1,8 @@ -
-
-
- -
-
- -
-
-
+ + + + diff --git a/Kyoo/ClientApp/src/app/app.module.ts b/Kyoo/ClientApp/src/app/app.module.ts index cecddedb..d31e85cd 100644 --- a/Kyoo/ClientApp/src/app/app.module.ts +++ b/Kyoo/ClientApp/src/app/app.module.ts @@ -5,7 +5,6 @@ import { HttpClientModule } from '@angular/common/http'; import { RouterModule } from '@angular/router'; import { AppComponent } from './app.component'; -import { NavMenuComponent } from './nav-menu/nav-menu.component'; import { HomeComponent } from './home/home.component'; import { CounterComponent } from './counter/counter.component'; import { FetchDataComponent } from './fetch-data/fetch-data.component'; @@ -13,7 +12,6 @@ import { FetchDataComponent } from './fetch-data/fetch-data.component'; @NgModule({ declarations: [ AppComponent, - NavMenuComponent, HomeComponent, CounterComponent, FetchDataComponent diff --git a/Kyoo/ClientApp/src/app/nav-menu/nav-menu.component.css b/Kyoo/ClientApp/src/app/nav-menu/nav-menu.component.css deleted file mode 100644 index e15c6128..00000000 --- a/Kyoo/ClientApp/src/app/nav-menu/nav-menu.component.css +++ /dev/null @@ -1,59 +0,0 @@ -li .glyphicon { - margin-right: 10px; -} - -/* Highlighting rules for nav menu items */ -li.link-active a, -li.link-active a:hover, -li.link-active a:focus { - background-color: #4189C7; - color: white; -} - -/* Keep the nav menu independent of scrolling and on top of other items */ -.main-nav { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 1; -} - -@media (min-width: 768px) { - /* On small screens, convert the nav menu to a vertical sidebar */ - .main-nav { - height: 100%; - width: calc(25% - 20px); - } - .navbar { - border-radius: 0px; - border-width: 0px; - height: 100%; - } - .navbar-header { - float: none; - } - .navbar-collapse { - border-top: 1px solid #444; - padding: 0px; - } - .navbar ul { - float: none; - } - .navbar li { - float: none; - font-size: 15px; - margin: 6px; - } - .navbar li a { - padding: 10px 16px; - border-radius: 4px; - } - .navbar a { - /* If a menu item's text is too long, truncate it */ - width: 100%; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } -} diff --git a/Kyoo/ClientApp/src/app/nav-menu/nav-menu.component.html b/Kyoo/ClientApp/src/app/nav-menu/nav-menu.component.html deleted file mode 100644 index b48b8e4a..00000000 --- a/Kyoo/ClientApp/src/app/nav-menu/nav-menu.component.html +++ /dev/null @@ -1,33 +0,0 @@ - diff --git a/Kyoo/ClientApp/src/app/nav-menu/nav-menu.component.ts b/Kyoo/ClientApp/src/app/nav-menu/nav-menu.component.ts deleted file mode 100644 index 327a3743..00000000 --- a/Kyoo/ClientApp/src/app/nav-menu/nav-menu.component.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-nav-menu', - templateUrl: './nav-menu.component.html', - styleUrls: ['./nav-menu.component.css'] -}) -export class NavMenuComponent { - isExpanded = false; - - collapse() { - this.isExpanded = false; - } - - toggle() { - this.isExpanded = !this.isExpanded; - } -} diff --git a/Kyoo/InternalAPI/Crawler/Crawler.cs b/Kyoo/InternalAPI/Crawler/Crawler.cs index 524650ff..1444cb68 100644 --- a/Kyoo/InternalAPI/Crawler/Crawler.cs +++ b/Kyoo/InternalAPI/Crawler/Crawler.cs @@ -48,8 +48,6 @@ namespace Kyoo.InternalAPI { if(IsVideo(file) && !libraryManager.IsEpisodeRegistered(file)) { - Debug.WriteLine("&Should insert this: " + file); - string patern = config.GetValue("regex"); Regex regex = new Regex(patern, RegexOptions.IgnoreCase); Match match = regex.Match(file); @@ -59,12 +57,9 @@ namespace Kyoo.InternalAPI bool seasonSuccess = long.TryParse(match.Groups["Season"].Value, out long seasonNumber); bool episodeSucess = long.TryParse(match.Groups["Episode"].Value, out long episodeNumber); - Debug.WriteLine("&ShowPath: " + showPath + " Show: " + showName + " season: " + seasonNumber + " episode: " + episodeNumber); - string showProviderIDs; if (!libraryManager.IsShowRegistered(showPath, out long showID)) { - Debug.WriteLine("&Should register show: " + showName); Show show = await metadataProvider.GetShowFromName(showName, showPath); showProviderIDs = show.ExternalIDs; showID = libraryManager.RegisterShow(show); @@ -72,18 +67,13 @@ namespace Kyoo.InternalAPI else showProviderIDs = libraryManager.GetShowExternalIDs(showID); - Debug.WriteLine("&Show ID: " + showID); - if(!libraryManager.IsSeasonRegistered(showID, seasonNumber, out long seasonID)) { - Debug.WriteLine("&Should register season: " + showName + " - " + seasonNumber); Season season = await metadataProvider.GetSeason(showName, seasonNumber); season.ShowID = showID; - showID = libraryManager.RegisterSeason(season); + seasonID = libraryManager.RegisterSeason(season); } - Debug.WriteLine("&Season ID: " + seasonID); - Episode episode = await metadataProvider.GetEpisode(showProviderIDs, seasonNumber, episodeNumber); episode.ShowID = showID; episode.SeasonID = seasonID; diff --git a/Kyoo/InternalAPI/LibraryManager/LibraryManager.cs b/Kyoo/InternalAPI/LibraryManager/LibraryManager.cs index 7961a1f0..214c4144 100644 --- a/Kyoo/InternalAPI/LibraryManager/LibraryManager.cs +++ b/Kyoo/InternalAPI/LibraryManager/LibraryManager.cs @@ -261,7 +261,6 @@ namespace Kyoo.InternalAPI public long RegisterShow(Show show) { string query = "INSERT INTO shows (slug, title, aliases, path, overview, genres, startYear, endYear, imgPrimary, imgThumb, imgLogo, imgBackdrop, externalIDs) VALUES($slug, $title, $aliases, $path, $overview, $genres, $startYear, $endYear, $imgPrimary, $imgThumb, $imgLogo, $imgBackdrop, $externalIDs);"; - Debug.WriteLine("&SQL QUERY:: " + query); using (SQLiteCommand cmd = new SQLiteCommand(query, sqlConnection)) { cmd.Parameters.AddWithValue("slug", show.Slug); @@ -288,7 +287,6 @@ namespace Kyoo.InternalAPI public long RegisterSeason(Season season) { string query = "INSERT INTO seasons (showID, seasonNumber, title, overview, year, imgPrimary, externalIDs) VALUES($showID, $seasonNumber, $title, $overview, $year, $imgPrimary, $externalIDs);"; - Debug.WriteLine("&SQL QUERY:: " + query); using (SQLiteCommand cmd = new SQLiteCommand(query, sqlConnection)) { cmd.Parameters.AddWithValue("$showID", season.ShowID); @@ -308,7 +306,6 @@ namespace Kyoo.InternalAPI public long RegisterEpisode(Episode episode) { string query = "INSERT INTO episodes (showID, seasonID, episodeNumber, title, overview, releaseDate, runtime, imgPrimary, externalIDs) VALUES($showID, $seasonID, $episodeNumber, $title, $overview, $releaseDate, $runtime, $imgPrimary, $externalIDs);"; - Debug.WriteLine("&SQL QUERY:: " + query); using (SQLiteCommand cmd = new SQLiteCommand(query, sqlConnection)) { cmd.Parameters.AddWithValue("$showID", episode.ShowID); diff --git a/Kyoo/InternalAPI/MetadataProvider/Implementations/TheTvDB/ProviderTheTvDB.cs b/Kyoo/InternalAPI/MetadataProvider/Implementations/TheTvDB/ProviderTheTvDB.cs index efed7c7c..16d0bfb2 100644 --- a/Kyoo/InternalAPI/MetadataProvider/Implementations/TheTvDB/ProviderTheTvDB.cs +++ b/Kyoo/InternalAPI/MetadataProvider/Implementations/TheTvDB/ProviderTheTvDB.cs @@ -4,6 +4,7 @@ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Diagnostics; +using System.Globalization; using System.IO; using System.Linq; using System.Net; @@ -122,7 +123,7 @@ namespace Kyoo.InternalAPI.MetadataProvider GetYear(data.firstAired), null, //endYear string.Format("{0}={1}|", Provider, data.id)); - return await GetShowByID(GetID(show.ExternalIDs)) ?? show; + return (await GetShowByID(GetID(show.ExternalIDs))).Set(show.Slug, show.Path) ?? show; } } else @@ -268,8 +269,6 @@ namespace Kyoo.InternalAPI.MetadataProvider return null; } - - public async Task GetEpisode(string externalIDs, long seasonNumber, long episodeNumber) { string id = GetID(externalIDs); @@ -282,8 +281,8 @@ namespace Kyoo.InternalAPI.MetadataProvider if (token == null) return null; - long page = episodeNumber / 100 + 1; - long index = episodeNumber % 100; + int page = (int)episodeNumber / 100 + 1; + int index = (int)episodeNumber % 100; WebRequest request = WebRequest.Create("https://api.thetvdb.com/series/" + id + "/episodes?page=" + page); request.Method = "GET"; @@ -307,8 +306,8 @@ namespace Kyoo.InternalAPI.MetadataProvider dynamic data = JsonConvert.DeserializeObject(content); dynamic episode = data.data[index]; - Debug.WriteLine("&Date: " + (string)episode.firstAired); - return new Episode(episodeNumber, episode.episodeName, episode.overview, DateTime.Parse(episode.firstAired), -1, "https://www.thetvdb.com/banners/" + episode.filename, string.Format("TvDB={0}|", episode.id)); + DateTime dateTime = DateTime.ParseExact((string)episode.firstAired, "yyyy-MM-dd", CultureInfo.InvariantCulture); + return new Episode(episodeNumber, (string)episode.episodeName, (string)episode.overview, dateTime, -1, "https://www.thetvdb.com/banners/" + episode.filename, string.Format("TvDB={0}|", episode.id)); } } else diff --git a/Kyoo/Models/Show.cs b/Kyoo/Models/Show.cs index fe6818c2..ec6d767b 100644 --- a/Kyoo/Models/Show.cs +++ b/Kyoo/Models/Show.cs @@ -91,6 +91,13 @@ namespace Kyoo.Models reader["imgBackdrop"] as string, reader["externalIDs"] as string); } + + public Show Set(string slug, string path) + { + Slug = slug; + Path = path; + return this; + } } public enum Status { Finished, Airing }