Преглед изворни кода

Handle negative roleStartIndex since not all guest stars have roles

Claus Vium пре 6 година
родитељ
комит
11504321b5
1 измењених фајлова са 21 додато и 14 уклоњено
  1. 21 14
      MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs

+ 21 - 14
MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs

@@ -205,31 +205,38 @@ namespace MediaBrowser.Providers.TV.TheTVDB
                 var currentActor = episode.GuestStars[i];
                 var roleStartIndex = currentActor.IndexOf('(');
 
-                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)
+                string name = currentActor;
+                string role = "";
+                if (roleStartIndex != -1)
                 {
-                    var currentRole = episode.GuestStars[j];
-                    var roleEndIndex = currentRole.IndexOf(')');
+                    var roles = new List<string> {currentActor.Substring(roleStartIndex + 1)};
+                    name = name.Substring(0, roleStartIndex).Trim();
 
-                    if (roleEndIndex != -1)
+                    // Fetch all roles
+                    for (var j = i + 1; j < episode.GuestStars.Length; ++j)
                     {
-                        roles.Add(currentRole.TrimEnd(')'));
-                        // Update the outer index (keep in mind it adds 1 after the iteration)
-                        i = j;
-                        break;
+                        var currentRole = episode.GuestStars[j];
+                        var roleEndIndex = currentRole.IndexOf(')');
+
+                        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);
                     }
 
-                    roles.Add(currentRole);
+                    role = string.Join(", ", roles);
                 }
 
                 result.AddPerson(new PersonInfo
                 {
                     Type = PersonType.GuestStar,
                     Name = name,
-                    Role = string.Join(", ", roles)
+                    Role = role
                 });
             }