mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-06-03 13:44:33 -04:00
Solving a bug with duplicated people in the database
This commit is contained in:
parent
4fa5655178
commit
862b4a42a7
@ -15,7 +15,7 @@ namespace Kyoo.Controllers
|
|||||||
int GetSeasonCount(string showSlug, long seasonNumber);
|
int GetSeasonCount(string showSlug, long seasonNumber);
|
||||||
IEnumerable<Show> GetShowsInCollection(long collectionID);
|
IEnumerable<Show> GetShowsInCollection(long collectionID);
|
||||||
IEnumerable<Show> GetShowsInLibrary(long libraryID);
|
IEnumerable<Show> GetShowsInLibrary(long libraryID);
|
||||||
IEnumerable<Show> GetShowsByPeople(long peopleID);
|
IEnumerable<Show> GetShowsByPeople(string peopleSlug);
|
||||||
IEnumerable<string> GetLibrariesPath();
|
IEnumerable<string> GetLibrariesPath();
|
||||||
|
|
||||||
//Internal read
|
//Internal read
|
||||||
|
@ -5,7 +5,6 @@ namespace Kyoo.Models
|
|||||||
{
|
{
|
||||||
public class People : IMergable<People>
|
public class People : IMergable<People>
|
||||||
{
|
{
|
||||||
[JsonIgnore] public long ID { get; set; }
|
|
||||||
public string Slug { get; set; }
|
public string Slug { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
[JsonIgnore] public string ImgPrimary { get; set; }
|
[JsonIgnore] public string ImgPrimary { get; set; }
|
||||||
@ -27,8 +26,6 @@ namespace Kyoo.Models
|
|||||||
{
|
{
|
||||||
if (other == null)
|
if (other == null)
|
||||||
return this;
|
return this;
|
||||||
if (ID == -1)
|
|
||||||
ID = other.ID;
|
|
||||||
if (Slug == null)
|
if (Slug == null)
|
||||||
Slug = other.Slug;
|
Slug = other.Slug;
|
||||||
if (Name == null)
|
if (Name == null)
|
||||||
|
@ -5,7 +5,7 @@ namespace Kyoo.Models
|
|||||||
public class PeopleLink
|
public class PeopleLink
|
||||||
{
|
{
|
||||||
[JsonIgnore] public long ID { get; set; }
|
[JsonIgnore] public long ID { get; set; }
|
||||||
[JsonIgnore] public long PeopleID { get; set; }
|
[JsonIgnore] public string PeopleID { get; set; }
|
||||||
[JsonIgnore] public virtual People People { get; set; }
|
[JsonIgnore] public virtual People People { get; set; }
|
||||||
|
|
||||||
public string Slug => People.Slug;
|
public string Slug => People.Slug;
|
||||||
|
@ -120,7 +120,11 @@ namespace Kyoo.Controllers
|
|||||||
if (show != null)
|
if (show != null)
|
||||||
return show;
|
return show;
|
||||||
show = await _metadataProvider.GetShowFromName(showTitle, showPath, library);
|
show = await _metadataProvider.GetShowFromName(showTitle, showPath, library);
|
||||||
show.People = (from people in await _metadataProvider.GetPeople(show, library) select people).ToList();
|
show.People = (await _metadataProvider.GetPeople(show, library)).Select(x =>
|
||||||
|
{
|
||||||
|
People existing = _libraryManager.GetPeopleBySlug(x.Slug);
|
||||||
|
return existing != null ? new PeopleLink(existing, x.Role, x.Type) : x;
|
||||||
|
}).ToList();
|
||||||
return show;
|
return show;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,9 +218,9 @@ namespace Kyoo.Controllers
|
|||||||
.OrderBy(x => x.Title);
|
.OrderBy(x => x.Title);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<Show> GetShowsByPeople(long peopleID)
|
public IEnumerable<Show> GetShowsByPeople(string peopleSlug)
|
||||||
{
|
{
|
||||||
return (from link in _database.PeopleLinks where link.PeopleID == peopleID select link.Show).OrderBy(x => x.Title);
|
return (from link in _database.PeopleLinks where link.PeopleID == peopleSlug select link.Show).OrderBy(x => x.Title);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<Episode> GetAllEpisodes()
|
public IEnumerable<Episode> GetAllEpisodes()
|
||||||
@ -305,18 +305,6 @@ namespace Kyoo.Controllers
|
|||||||
_database.SaveChanges();
|
_database.SaveChanges();
|
||||||
return studio.ID;
|
return studio.ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long GetOrCreatePeople(People people)
|
|
||||||
{
|
|
||||||
People existingPeople = GetPeopleBySlug(people.Slug);
|
|
||||||
|
|
||||||
if (existingPeople != null)
|
|
||||||
return existingPeople.ID;
|
|
||||||
|
|
||||||
_database.Peoples.Add(people);
|
|
||||||
_database.SaveChanges();
|
|
||||||
return people.ID;
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Write Into The Database
|
#region Write Into The Database
|
||||||
|
@ -52,6 +52,9 @@ namespace Kyoo
|
|||||||
modelBuilder.Entity<Track>()
|
modelBuilder.Entity<Track>()
|
||||||
.Property(t => t.IsForced)
|
.Property(t => t.IsForced)
|
||||||
.ValueGeneratedNever();
|
.ValueGeneratedNever();
|
||||||
|
|
||||||
|
modelBuilder.Entity<People>()
|
||||||
|
.HasKey(x => x.Slug);
|
||||||
|
|
||||||
modelBuilder.Entity<GenreLink>()
|
modelBuilder.Entity<GenreLink>()
|
||||||
.HasKey(x => new {x.ShowID, x.GenreID});
|
.HasKey(x => new {x.ShowID, x.GenreID});
|
||||||
|
@ -24,7 +24,7 @@ namespace Kyoo.Api
|
|||||||
return NotFound();
|
return NotFound();
|
||||||
Collection collection = new Collection(people.Slug, people.Name, null, null)
|
Collection collection = new Collection(people.Slug, people.Name, null, null)
|
||||||
{
|
{
|
||||||
Shows = _libraryManager.GetShowsByPeople(people.ID),
|
Shows = _libraryManager.GetShowsByPeople(people.Slug),
|
||||||
Poster = "peopleimg/" + people.Slug
|
Poster = "peopleimg/" + people.Slug
|
||||||
};
|
};
|
||||||
return collection;
|
return collection;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user