Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
 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);
     }
 }
Example #4
0
        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);
        }
Example #5
0
        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);
                        }
                    }
                }
            }
        }
Example #6
0
        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;
                    }
                }
            }
        }