public override int DiscoverSubCategories(Category parentCategory) { parentCategory.SubCategories = new List<Category>(); string id = ((RssLink)parentCategory).Url; if (id == NrkBrowserConstants.MENU_ITEM_ID_ALPHABETICAL_LIST) { foreach(Program prg in nrkParser.GetAllPrograms()) { parentCategory.SubCategories.Add(new RssLink() { Url = prg.ID, Name = prg.Title, Description = prg.Description, Thumb = prg.Bilde, Other = prg, HasSubCategories = true, ParentCategory = parentCategory }); } } else if (id == NrkBrowserConstants.MENU_ITEM_ID_CATEGORIES) { foreach (Vattenmelon.Nrk.Domain.Category cat in nrkParser.GetCategories()) { parentCategory.SubCategories.Add(new RssLink() { Url = cat.ID, Name = cat.Title, Other = cat, HasSubCategories = true, ParentCategory = parentCategory }); } } else if (id == NrkBrowserConstants.MENU_ITEM_ID_MOST_WATCHED) { parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_MEST_SETTE_UKE, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_MEST_SETTE_UKE, Description = NrkTranslatableStrings.MENU_ITEM_DESCRIPTION_MEST_SETTE_UKE, ParentCategory = parentCategory }); parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_MEST_SETTE_MAANED, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_MEST_SETTE_MAANED, Description = NrkTranslatableStrings.MENU_ITEM_DESCRIPTION_MEST_SETTE_MAANED, ParentCategory = parentCategory }); parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_MEST_SETTE_TOTALT, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_MEST_SETTE_TOTALT, Description = NrkTranslatableStrings.MENU_ITEM_DESCRIPTION_MEST_SETTE_TOTALT, ParentCategory = parentCategory }); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_NRKBETA) { parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_SISTE_KLIPP, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_NRKBETA_LATEST_CLIPS, ParentCategory = parentCategory }); parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_TVSERIER, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_NRKBETA_TV_SERIES, ParentCategory = parentCategory }); parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_DIVERSE, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_NRKBETA_OTHER, ParentCategory = parentCategory }); parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_PRESENTASJONER, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_NRKBETA_PRESENTATIONS, ParentCategory = parentCategory }); parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_KONFERANSER_OG_MESSER, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_NRKBETA_CONFERENCES, ParentCategory = parentCategory }); parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_FRA_TV, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_NRKBETA_FROM_TV, ParentCategory = parentCategory }); parentCategory.SubCategories.Add(new RssLink() { Url = NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_HD_KLIPP, Name = NrkTranslatableStrings.MENU_ITEM_TITLE_NRKBETA_HD_CLIPS, ParentCategory = parentCategory }); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_PODCASTS_VIDEO) { foreach (PodKast pk in nrkParser.GetVideoPodkaster()) { parentCategory.SubCategories.Add(new RssLink() { Url = pk.ID, Name = pk.Title, Description = pk.Description, Thumb = pk.Bilde, Other = pk, ParentCategory = parentCategory }); } } else if (parentCategory.Other is Vattenmelon.Nrk.Domain.Category) { foreach (Program prg in nrkParser.GetPrograms((Vattenmelon.Nrk.Domain.Category)parentCategory.Other)) { parentCategory.SubCategories.Add(new RssLink() { Url = prg.ID, Name = prg.Title, Description = prg.Description, Thumb = prg.Bilde, Other = prg, HasSubCategories = true, ParentCategory = parentCategory }); } } else if (parentCategory.Other is Program) { foreach (Folder f in nrkParser.GetFolders((Program)parentCategory.Other)) { parentCategory.SubCategories.Add(new RssLink() { Url = f.ID, Name = f.Title, Other = f, ParentCategory = parentCategory }); } if (parentCategory.SubCategories.Count == 0) { // if no folder found, create a Category for "All" parentCategory.SubCategories.Add(new RssLink() { Name = Translation.Instance.All, Other = parentCategory.Other, ParentCategory = parentCategory }); } } parentCategory.SubCategoriesDiscovered = true; return parentCategory.SubCategories.Count; }
public override List<VideoInfo> GetVideos(Category category) { IList<Item> items = null; string id = ((RssLink)category).Url; if (id == NrkBrowserConstants.MENU_ITEM_ID_LIVE) { items = nrkParser.GetDirektePage(); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_LIVE_ALTERNATE) { items = new List<Item>(); items.Add(new Stream(NrkParserConstants.STREAM_PREFIX + "03" + liveStreamUrlSuffix, NrkBrowserConstants.MENU_ITEM_LIVE_ALTERNATE_NRK1)); items.Add(new Stream(NrkParserConstants.STREAM_PREFIX + "04" + liveStreamUrlSuffix, NrkBrowserConstants.MENU_ITEM_LIVE_ALTERNATE_NRK2)); items.Add(new Stream(NrkParserConstants.STREAM_PREFIX + "05" + liveStreamUrlSuffix, NrkBrowserConstants.MENU_ITEM_LIVE_ALTERNATE_3)); items.Add(new Stream(NrkParserConstants.STREAM_PREFIX + "08" + liveStreamUrlSuffix, NrkBrowserConstants.MENU_ITEM_LIVE_ALTERNATE_4)); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_CHOOSE_STREAM_MANUALLY) { items = new List<Item>(); for (int i = 0; i < 10; i++) { items.Add(new Stream(NrkParserConstants.STREAM_PREFIX + i.ToString("D2") + liveStreamUrlSuffix, "Strøm " + i)); } } else if (id == NrkBrowserConstants.MENU_ITEM_ID_LATEST_CLIPS) { items = nrkParser.GetSistePaaForsiden(); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_RECOMMENDED_PROGRAMS) { items = nrkParser.getAnbefalte(); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_MEST_SETTE_UKE) { items = nrkParser.GetMestSette(7); foreach (Item i in items) i.Description = String.Format(NrkTranslatableStrings.DESCRIPTION_CLIP_SHOWN_TIMES, i.Description); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_MEST_SETTE_MAANED) { items = nrkParser.GetMestSette(31); foreach (Item i in items) i.Description = String.Format(NrkTranslatableStrings.DESCRIPTION_CLIP_SHOWN_TIMES, i.Description); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_MEST_SETTE_TOTALT) { items = nrkParser.GetMestSette(3650); foreach (Item i in items) i.Description = String.Format(NrkTranslatableStrings.DESCRIPTION_CLIP_SHOWN_TIMES, i.Description); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_SISTE_KLIPP) { items = new NrkBetaXmlParser().FindLatestClips().getClips(); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_TVSERIER || id == NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_FRA_TV) { NrkBetaXmlParser nrkBetaParser = new NrkBetaXmlParser(NrkParserConstants.NRK_BETA_FEEDS_KATEGORI_URL, NrkParserConstants.NRK_BETA_SECTION_FRA_TV); items = nrkBetaParser.getClips(); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_DIVERSE) { NrkBetaXmlParser nrkBetaParser = new NrkBetaXmlParser(NrkParserConstants.NRK_BETA_FEEDS_KATEGORI_URL, NrkParserConstants.NRK_BETA_SECTION_DIVERSE); items = nrkBetaParser.getClips(); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_KONFERANSER_OG_MESSER) { NrkBetaXmlParser nrkBetaParser = new NrkBetaXmlParser(NrkParserConstants.NRK_BETA_FEEDS_KATEGORI_URL, NrkParserConstants.NRK_BETA_SECTION_KONFERANSER_OG_MESSER); items = nrkBetaParser.getClips(); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_PRESENTASJONER) { NrkBetaXmlParser nrkBetaParser = new NrkBetaXmlParser(NrkParserConstants.NRK_BETA_FEEDS_KATEGORI_URL, NrkParserConstants.NRK_BETA_SECTION_PRESENTASJONER); items = nrkBetaParser.getClips(); } else if (id == NrkBrowserConstants.MENU_ITEM_ID_NRKBETA_HD_KLIPP) { items = new NrkBetaXmlParser().FindHDClips().getClips(); } else if (category.Other is Program) { items = nrkParser.GetClips((Program)category.Other); } else if (category.Other is Folder) { items = nrkParser.GetClips((Folder)category.Other); } else if (category.Other is PodKast) { PodkastXmlParser pxp = new PodkastXmlParser(id); items = pxp.getClips(); } return VideosFromItems(items); }
public IList<Item> GetPrograms(Category category) { string data = FetchUrl(CATEGORY_URL + category.ID); Regex queryBilder = new Regex("<li><div><a href=\"/nett-tv/prosjekt/.*?\" title=\".*?\"><img src=\"(?<imgsrc>[^\"]*)\".*?/></a><h3><a href=\"/nett-tv/prosjekt/(?<id>[^\"]*)\" title=\".*?\">(?<title>[^<]*)</a></h3><div class=\"summary\"><p>(?<desc>[^<]*)</p></div></div></li>"); MatchCollection matches = queryBilder.Matches(data); List<string> bilder = new List<string>(); List<Item> programs = new List<Item>(); foreach (Match x in matches) { programs.Add(new Program(x.Groups["id"].Value, x.Groups["title"].Value, x.Groups["desc"].Value, x.Groups["imgsrc"].Value)); } return programs; }