public GetSeries(String sSeriesName) { XmlNode node = Online_Parsing_Classes.OnlineAPI.GetSeries(sSeriesName); nameToMatch = sSeriesName; if (node != null) { foreach (XmlNode itemNode in node.ChildNodes) { DBOnlineSeries series = new DBOnlineSeries(); foreach (XmlNode propertyNode in itemNode.ChildNodes) { if (propertyNode.Name == "seriesid") // work around SeriesID inconsistancy { series[DBOnlineSeries.cID] = propertyNode.InnerText; } else if (DBOnlineSeries.s_OnlineToFieldMap.ContainsKey(propertyNode.Name)) { series[DBOnlineSeries.s_OnlineToFieldMap[propertyNode.Name]] = propertyNode.InnerText; } else { // we don't know that field, add it to the series table series.AddColumn(propertyNode.Name, new DBField(DBField.cTypeString)); series[propertyNode.Name] = propertyNode.InnerText; } } listSeries.Add(series); } PerfectMatch = RankSearchResults(nameToMatch, listSeries, out listSeries); } }
public GetSeries(String sSeriesName) { XmlNode node = Online_Parsing_Classes.OnlineAPI.GetSeries(sSeriesName); nameToMatch = sSeriesName; if (node != null) { foreach (XmlNode itemNode in node.ChildNodes) { DBOnlineSeries series = new DBOnlineSeries(); foreach (XmlNode propertyNode in itemNode.ChildNodes) { if (propertyNode.Name == "seriesid") // work around SeriesID inconsistancy { series[DBOnlineSeries.cID] = propertyNode.InnerText; } else if (DBOnlineSeries.s_OnlineToFieldMap.ContainsKey(propertyNode.Name)) series[DBOnlineSeries.s_OnlineToFieldMap[propertyNode.Name]] = propertyNode.InnerText; else { // we don't know that field, add it to the series table series.AddColumn(propertyNode.Name, new DBField(DBField.cTypeString)); series[propertyNode.Name] = propertyNode.InnerText; } } listSeries.Add(series); } PerfectMatch = RankSearchResults(nameToMatch, listSeries, out listSeries); } }
public override bool AddColumn(string sName, DBField field) { // can't add columns to if (m_onlineSeries != null) { return(m_onlineSeries.AddColumn(sName, field)); } else { return(false); } }
public GetSeries(String aSeriesName) { string lUserLanguage = DBOption.GetOptions(DBOption.cOnlineLanguage); if (DBOption.GetOptions(DBOption.cOverrideSearchLanguageToEnglish)) { lUserLanguage = "en"; } // search for series basis the user's language XmlNode lNode = Online_Parsing_Classes.OnlineAPI.GetSeries(aSeriesName, lUserLanguage); if (lNode == null) { return; } // if we have no results from the user's language try English if (lNode.ChildNodes.Count == 0 && lUserLanguage != "en") { lNode = Online_Parsing_Classes.OnlineAPI.GetSeries(aSeriesName, "en"); if (lNode == null) { return; } } foreach (XmlNode itemNode in lNode.ChildNodes) { var lSeries = new DBOnlineSeries(); foreach (XmlNode propertyNode in itemNode.ChildNodes) { if (propertyNode.Name == "seriesid") // work around SeriesID inconsistancy { lSeries[DBOnlineSeries.cID] = propertyNode.InnerText; } else if (DBOnlineSeries.s_OnlineToFieldMap.ContainsKey(propertyNode.Name)) { lSeries[DBOnlineSeries.s_OnlineToFieldMap[propertyNode.Name]] = propertyNode.InnerText; } else { // we don't know that field, add it to the series table lSeries.AddColumn(propertyNode.Name, new DBField(DBField.cTypeString)); lSeries[propertyNode.Name] = propertyNode.InnerText; } } mListSeries.Add(lSeries); } PerfectMatch = RankSearchResults(aSeriesName, mListSeries, out mListSeries); }
private IEnumerable <DBOnlineSeries> Work(String sSeriesID, String languageID, bool aOverride = false) { if (sSeriesID.Length > 0) { int result; if (int.TryParse(sSeriesID, out result)) { MPTVSeriesLog.Write(string.Format("Retrieving updated Metadata for series {0}", Helper.getCorrespondingSeries(result)), MPTVSeriesLog.LogLevel.Debug); } XmlNode node = null; if (String.IsNullOrEmpty(languageID)) { node = Online_Parsing_Classes.OnlineAPI.UpdateSeries(sSeriesID); } else { node = Online_Parsing_Classes.OnlineAPI.UpdateSeries(sSeriesID, languageID, aOverride); } if (node != null) { foreach (XmlNode itemNode in node.SelectNodes("/Data")) { bool hasDVDOrdering = false; bool hasAbsoluteOrdering = false; DBOnlineSeries series = new DBOnlineSeries(); foreach (XmlNode seriesNode in itemNode) { // first return item SHOULD ALWAYS be the series if (seriesNode.Name.Equals("Series", StringComparison.InvariantCultureIgnoreCase)) { foreach (XmlNode propertyNode in seriesNode.ChildNodes) { if (propertyNode.Name == "Language") // work around inconsistancy (language = Language) { series["language"] = propertyNode.InnerText; } else if (DBOnlineSeries.s_OnlineToFieldMap.ContainsKey(propertyNode.Name)) { series[DBOnlineSeries.s_OnlineToFieldMap[propertyNode.Name]] = propertyNode.InnerText; } else { // we don't know that field, add it to the series table series.AddColumn(propertyNode.Name, new DBField(DBField.cTypeString)); series[propertyNode.Name] = propertyNode.InnerText; } } if (series != null) { mSeriesList.Add(series); } } else if (!hasDVDOrdering || !hasAbsoluteOrdering || seriesNode.Name.Equals("Episode", StringComparison.InvariantCultureIgnoreCase)) { foreach (XmlNode propertyNode in seriesNode.ChildNodes) { switch (propertyNode.Name) { case "DVD_episodenumber": case "DVD_season": if (!String.IsNullOrEmpty(propertyNode.InnerText)) { hasDVDOrdering = true; } break; case "absolute_number": if (!String.IsNullOrEmpty(propertyNode.InnerText)) { hasAbsoluteOrdering = true; } break; } } } } if ((hasAbsoluteOrdering || hasDVDOrdering)) { string ordering = series[DBOnlineSeries.cEpisodeOrders] == string.Empty ? "Aired|" : (string)series[DBOnlineSeries.cEpisodeOrders]; if (hasAbsoluteOrdering) { ordering += "Absolute|"; } if (hasDVDOrdering) { ordering += "DVD"; } series[DBOnlineSeries.cEpisodeOrders] = ordering; } if (series != null) { yield return(series); } } } } }
private IEnumerable<DBOnlineSeries> Work(String sSeriesID, String languageID) { if (sSeriesID.Length > 0) { int result; if (int.TryParse(sSeriesID,out result)) MPTVSeriesLog.Write(string.Format("Retrieving updated Metadata for series {0}",Helper.getCorrespondingSeries(result)), MPTVSeriesLog.LogLevel.Debug); XmlNode node = null; if (String.IsNullOrEmpty(languageID)) { node = Online_Parsing_Classes.OnlineAPI.UpdateSeries(sSeriesID); } else { node = Online_Parsing_Classes.OnlineAPI.UpdateSeries(sSeriesID, languageID); } if (node != null) { foreach (XmlNode itemNode in node.SelectNodes("/Data")) { bool hasDVDOrdering = false; bool hasAbsoluteOrdering = false; DBOnlineSeries series = new DBOnlineSeries(); foreach (XmlNode seriesNode in itemNode) { // first return item SHOULD ALWAYS be the series if (seriesNode.Name.Equals("Series", StringComparison.InvariantCultureIgnoreCase)) { foreach (XmlNode propertyNode in seriesNode.ChildNodes) { if (propertyNode.Name == "Language") // work around inconsistancy (language = Language) { series["language"] = propertyNode.InnerText; } else if (DBOnlineSeries.s_OnlineToFieldMap.ContainsKey(propertyNode.Name)) series[DBOnlineSeries.s_OnlineToFieldMap[propertyNode.Name]] = propertyNode.InnerText; else { // we don't know that field, add it to the series table series.AddColumn(propertyNode.Name, new DBField(DBField.cTypeString)); series[propertyNode.Name] = propertyNode.InnerText; } } if (series != null) listSeries.Add(series); } else if(!hasDVDOrdering || !hasAbsoluteOrdering || seriesNode.Name.Equals("Episode", StringComparison.InvariantCultureIgnoreCase)) { foreach (XmlNode propertyNode in seriesNode.ChildNodes) { switch (propertyNode.Name) { case "DVD_episodenumber": case "DVD_season": if(!String.IsNullOrEmpty(propertyNode.InnerText)) hasDVDOrdering = true; break; case "absolute_number": if (!String.IsNullOrEmpty(propertyNode.InnerText)) hasAbsoluteOrdering = true; break; } } } } if ((hasAbsoluteOrdering || hasDVDOrdering)) { string ordering = series[DBOnlineSeries.cEpisodeOrders] == string.Empty ? "Aired|" : (string)series[DBOnlineSeries.cEpisodeOrders]; if (hasAbsoluteOrdering) ordering += "Absolute|"; if (hasDVDOrdering) ordering += "DVD"; series[DBOnlineSeries.cEpisodeOrders] = ordering; } if(series != null) yield return series; } } } }