mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-04-23 21:47:14 -04:00
Fix tvdb guest stars loop
This commit is contained in:
parent
685e9e4f58
commit
f4a99beb16
1 changed files with 28 additions and 8 deletions
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Common.Net;
|
||||
|
@ -193,24 +194,43 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||
});
|
||||
}
|
||||
|
||||
foreach (var person in episode.GuestStars)
|
||||
// GuestStars is a weird list of names and roles
|
||||
// Example:
|
||||
// 1: Some Actor (Role1
|
||||
// 2: Role2
|
||||
// 3: Role3)
|
||||
// 4: Another Actor (Role1
|
||||
// ...
|
||||
for (var i = 0; i < episode.GuestStars.Length; ++i)
|
||||
{
|
||||
var index = person.IndexOf('(');
|
||||
string role = null;
|
||||
var name = person;
|
||||
var currentActor = episode.GuestStars[i];
|
||||
var roleStartIndex = currentActor.IndexOf('(');
|
||||
|
||||
if (index != -1)
|
||||
var roles = new List<string> {currentActor.Substring(roleStartIndex + 1)};
|
||||
var name = currentActor.Substring(0, roleStartIndex).Trim();
|
||||
|
||||
// Fetch all roles
|
||||
for (var j = i + 1; j < episode.GuestStars.Length; ++j)
|
||||
{
|
||||
role = person.Substring(index + 1).Trim().TrimEnd(')');
|
||||
var currentRole = episode.GuestStars[j];
|
||||
var roleEndIndex = currentRole.IndexOf(')');
|
||||
|
||||
name = person.Substring(0, index).Trim();
|
||||
if (roleEndIndex != -1)
|
||||
{
|
||||
roles.Add(currentRole.TrimEnd(')'));
|
||||
// Update the outer index (keep in mind it adds 1 after the iteration)
|
||||
i = j;
|
||||
break;
|
||||
}
|
||||
|
||||
roles.Add(currentRole);
|
||||
}
|
||||
|
||||
result.AddPerson(new PersonInfo
|
||||
{
|
||||
Type = PersonType.GuestStar,
|
||||
Name = name,
|
||||
Role = role
|
||||
Role = string.Join(", ", roles)
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue