| 
														
															@@ -1,4 +1,5 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 using System.Collections.Generic; 
														 | 
														
														 | 
														
															 using System.Collections.Generic; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+using System.Text.RegularExpressions; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 using System.Xml.Linq; 
														 | 
														
														 | 
														
															 using System.Xml.Linq; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 using MediaBrowser.Common.Extensions; 
														 | 
														
														 | 
														
															 using MediaBrowser.Common.Extensions; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 using MediaBrowser.Common.Net; 
														 | 
														
														 | 
														
															 using MediaBrowser.Common.Net; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -313,9 +314,17 @@ namespace MediaBrowser.Providers.TV 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (actors != null) 
														 | 
														
														 | 
														
															                 if (actors != null) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 { 
														 | 
														
														 | 
														
															                 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     // Sometimes tvdb actors have leading spaces 
														 | 
														
														 | 
														
															                     // Sometimes tvdb actors have leading spaces 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    foreach (var person in actors.Split(new[] {'|'}, StringSplitOptions.RemoveEmptyEntries) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 .Where(i => !string.IsNullOrWhiteSpace(i)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 .Select(str => new PersonInfo {Type = PersonType.GuestStar, Name = str.Trim()})) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    var persons = Regex.Matches(actors, @"([^|()]|\([^)]*\)*)+") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        .Cast<Match>() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        .Select(m => m.Value).Where(i => !string.IsNullOrWhiteSpace(i) && !string.IsNullOrEmpty(i)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    foreach (var person in persons.Select(str => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              var nameGroup = str.Split(new[] {'('}, 2, StringSplitOptions.RemoveEmptyEntries); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              var name = nameGroup[0].Trim(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              var roles = nameGroup.Count() > 1 ? nameGroup[1].Trim() : null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              if (roles != null) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                                  roles = roles.EndsWith(")") ? roles.Substring(0, roles.Length - 1) : roles; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              return new PersonInfo {Type = PersonType.GuestStar, Name = name, Role = roles}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                          })) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     { 
														 | 
														
														 | 
														
															                     { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         episode.AddPerson(person); 
														 | 
														
														 | 
														
															                         episode.AddPerson(person); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     } 
														 | 
														
														 | 
														
															                     } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -325,9 +334,18 @@ namespace MediaBrowser.Providers.TV 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     var extraActors = xmlDocument.SafeGetString("//GuestStars"); 
														 | 
														
														 | 
														
															                     var extraActors = xmlDocument.SafeGetString("//GuestStars"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     if (extraActors == null) continue; 
														 | 
														
														 | 
														
															                     if (extraActors == null) continue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     // Sometimes tvdb actors have leading spaces 
														 | 
														
														 | 
														
															                     // Sometimes tvdb actors have leading spaces 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    foreach (var person in extraActors.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                      .Where(i => !string.IsNullOrWhiteSpace(i)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                      .Select(str => new PersonInfo { Type = PersonType.GuestStar, Name = str.Trim() }).Where(person => !episode.People.Any(x=>x.Type == person.Type && x.Name == person.Name))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    var persons = Regex.Matches(extraActors, @"([^|()]|\([^)]*\)*)+") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        .Cast<Match>() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        .Select(m => m.Value).Where(i => !string.IsNullOrWhiteSpace(i) && !string.IsNullOrEmpty(i)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    foreach (var person in persons.Select(str => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              var nameGroup = str.Split(new[] {'('}, 2, StringSplitOptions.RemoveEmptyEntries); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              var name = nameGroup[0].Trim(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              var roles = nameGroup.Count() > 1 ? nameGroup[1].Trim() : null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              if (roles != null) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                                  roles = roles.EndsWith(")") ? roles.Substring(0, roles.Length - 1) : roles; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                              return new PersonInfo {Type = PersonType.GuestStar, Name = name, Role = roles}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                                          }).Where(person => !episode.People.Any(x => x.Type == person.Type && x.Name == person.Name)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     { 
														 | 
														
														 | 
														
															                     { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         episode.AddPerson(person); 
														 | 
														
														 | 
														
															                         episode.AddPerson(person); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     } 
														 | 
														
														 | 
														
															                     } 
														 |