public void SetData(PrgInfo prg) { txtDescription.Text = prg.Description; lbCountry.Text = prg.Country; lbTitleEPG.Text = prg.Title; lbStars.Text = prg.Stars; lbStartTime.Text = prg.StartTime.ToShortTimeString(); lbEndTime.Text = prg.StopTime.ToShortTimeString(); logoPRG.LoadCompleted -= logoEPGLoaded; lbRatings.Text = prg.Rating.Replace("Ratings:", ""); foreach (string cat in prg.Categories) { lbCategories.Text += cat + ","; } if (lbCategories.Text.EndsWith(",")) { lbCategories.Text = lbCategories.Text.Substring(0, lbCategories.Text.Length - 1); } logoPRG.Image = Image.FromFile("./resources/images/nochannel.png"); if (!string.IsNullOrEmpty(prg.Logo)) { logoPRG.LoadAsync(prg.Logo); logoPRG.LoadCompleted += logoEPGLoaded; } VisibleChannel(true); }
public PrgInfo GetCurrentProgramm(ChannelInfo channel) { PrgInfo result = null; DateTime nowDate = DateTime.Now; List <PrgInfo> listProgramms = null; try { listProgramms = DB[channel.TVGId][nowDate.Year][nowDate.Month][nowDate.Day]; } catch (Exception ex) { listProgramms = new List <PrgInfo>(); } foreach (PrgInfo prg in listProgramms) { if (prg.StartTime <= nowDate) { if (prg.StopTime >= nowDate) { result = prg; break; } } } return(result); }
private void DefaultEpgLabels() { lbTitleEPG.Text = "-"; lbDescription.Text = "-"; lbEndTime.Text = "-"; lbStars.Text = "-"; lbStartTime.Text = "-"; lbYear.Text = "-"; currentPrg = null; }
private void FillChannelInfo(PrgInfo prg) { lbTitleEPG.Text = prg.Title; string description = prg.Description; if (description.Length > 200 || description.Split('\n').Length > 3) { description = description.Substring(0, 190) + " ..."; } lbDescription.Text = description; lbStars.Text = prg.Stars; lbStartTime.Text = prg.StartTime.ToShortTimeString(); lbEndTime.Text = prg.StopTime.ToShortTimeString(); currentPrg = prg; }
private void SetEPG(ChannelInfo channel) { if (channel.ChannelType == ChType.CHANNEL) { VisibleEPGLabes(true); EPG_DB epg = EPG_DB.Get(); if (epg.Loaded == EPG_STATUS.Loaded) { PrgInfo prg = epg.GetCurrentProgramm(channel); if (prg != null) { FillChannelInfo(prg); } else { DefaultEpgLabels(); } } else { DefaultEpgLabels(); } } else { DefaultEpgLabels(); VisibleEPGLabes(false); dynamic result = Utils.GetFilmInfo(channel, "es"); fillFilmResults = result["results"]; JObject filmMatch = null; if (result["results"].Count > 0) { filmMatch = result["results"][0]; } filmInfo = filmMatch; DrawMovieInfo(); } }
private void Parse() { EPGEventArgs epgEvent = new EPGEventArgs(); epgEvent.Error = false; XmlDocument doc = new XmlDocument(); try { doc.Load(System.Environment.GetEnvironmentVariable("USERPROFILE") + "\\amiiptvepg.xml"); XmlNodeList list_programs = doc.SelectNodes("/tv/programme"); foreach (XmlNode prg in list_programs) { PrgInfo prginfo = new PrgInfo(); string formatString = "yyyyMMddHHmmss"; prginfo.StartTime = DateTime.ParseExact(prg.Attributes["start"].Value.Split(' ')[0], formatString, CultureInfo.InvariantCulture); prginfo.StopTime = DateTime.ParseExact(prg.Attributes["stop"].Value.Split(' ')[0], formatString, CultureInfo.InvariantCulture); string channelID = prg.Attributes["channel"].Value; prginfo.Title = prg.SelectSingleNode("title").InnerText; try { prginfo.Description = prg.SelectSingleNode("desc").InnerText; } catch (Exception ex) { prginfo.Description = "No Description"; } XmlNodeList categories = prg.SelectNodes("category"); foreach (XmlNode cat in categories) { if (prginfo.Categories == null) { prginfo.Categories = new List <string>(); } prginfo.Categories.Add(cat.InnerText); } try { prginfo.Stars = prg.SelectSingleNode("star-rating").InnerText; } catch (Exception ex) { prginfo.Stars = "-"; } try { prginfo.Logo = prg.SelectSingleNode("icon").Attributes["src"].InnerText; } catch (Exception ex) { prginfo.Logo = null; } try { prginfo.Country = prg.SelectSingleNode("country").InnerText; } catch (Exception ex) { prginfo.Country = "-"; } try { prginfo.Rating = prg.SelectSingleNode("review").InnerText; } catch (Exception ex) { prginfo.Rating = "-"; } if (!DB.ContainsKey(channelID)) { DB[channelID] = new Dictionary <int, Dictionary <int, Dictionary <int, List <PrgInfo> > > >(); } if (!DB[channelID].ContainsKey(prginfo.StartTime.Year)) { DB[channelID][prginfo.StartTime.Year] = new Dictionary <int, Dictionary <int, List <PrgInfo> > >(); } if (!DB[channelID][prginfo.StartTime.Year].ContainsKey(prginfo.StartTime.Month)) { DB[channelID][prginfo.StartTime.Year][prginfo.StartTime.Month] = new Dictionary <int, List <PrgInfo> >(); } if (!DB[channelID][prginfo.StartTime.Year][prginfo.StartTime.Month].ContainsKey(prginfo.StartTime.Day)) { DB[channelID][prginfo.StartTime.Year][prginfo.StartTime.Month][prginfo.StartTime.Day] = new List <PrgInfo>(); } DB[channelID][prginfo.StartTime.Year][prginfo.StartTime.Month][prginfo.StartTime.Day].Add(prginfo); } using (StreamWriter file = File.CreateText(System.Environment.GetEnvironmentVariable("USERPROFILE") + "\\amiiptvepgCache.json")) { JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(file, DB); } epgEventFinish(this, epgEvent); Loaded = true; }catch (Exception ex) { File.Delete(System.Environment.GetEnvironmentVariable("USERPROFILE") + "\\amiiptvepg.xml"); epgEvent.Error = true; epgEventFinish(this, epgEvent); Loaded = false; } }