public void GetBeams()
        {
            var beams = dataFile.Channels[SelectedChannelIndex + 1].Beams;

            for (int i = 1; i <= beams.Count; i++)
            {
                var beam = beams[i];
                BeamList.Add(beam.Name);
            }

            // set first beam by default
            SelectedBeamIndex = 0;

            // Beam index starts from 1
            GetBeamInfo(SelectedBeamIndex + 1);
        }
Example #2
0
        public override void Parse(int I, bool TypeByPID)
        {
            File.Delete(TransFileName(I));
            File.Delete(ChanFileName(I));
            if (!File.Exists(DataFileName(I)))
            {
                return;
            }

            FileStream   FS1  = new FileStream(TransFileName(I), FileMode.CreateNew, FileAccess.Write);
            StreamWriter FS1W = new StreamWriter(FS1);

            FS1W.WriteLine("Satellite\tFrequence\tPol\tTxp\tBeam\tStandard\tModulation\tSR/FEC\tNetwork, bitrate\tNID\tTID\tRow");

            FileStream   FS2  = new FileStream(ChanFileName(I), FileMode.CreateNew, FileAccess.Write);
            StreamWriter FS2W = new StreamWriter(FS2);

            FS2W.WriteLine("Freq\tPol\tSR\tBeam\tType\tName\tCountry\tCategory\tPackages\tEncryption\tSID\tVPID\tAudio\tPMT\tPCR\tTXT\tLast updated\tFTA\tRow");

            BeamList.Clear();

            HtmlAgilityPack.HtmlDocument HTMLDoc = new HtmlAgilityPack.HtmlDocument();
            FileStream   HFS  = new FileStream(DataFileName(I), FileMode.Open, FileAccess.Read);
            StreamReader HFSR = new StreamReader(HFS);
            string       RAW  = HFSR.ReadToEnd();

            HFSR.Close();
            HFS.Close();
            HTMLDoc.LoadHtml(RAW);
            for (int ii = 0; ii < HTMLDoc.DocumentNode.ChildNodes.Count; ii++)
            {
                if (HTMLDoc.DocumentNode.ChildNodes[ii].Name == "html")
                {
                    for (int iii = 0; iii < HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes.Count; iii++)
                    {
                        if (HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].Name == "body")
                        {
                            for (int iiii = 0; iiii < HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes.Count; iiii++)
                            {
                                HtmlAgilityPack.HtmlNode N = HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes[iiii];
                                if (N.Name == "div")
                                {
                                    bool WasHeader = false;
                                    if (N.Attributes["class"] == null)
                                    {
                                        throw new Exception("DIV");
                                    }
                                    if (N.Attributes["class"].Value == "w3-main")
                                    {
                                        string[] SatTrans = null;
                                        for (int _i = 0; _i < N.ChildNodes.Count; _i++)
                                        {
                                            if (N.ChildNodes[_i].Name == "center")
                                            {
                                                WasHeader = true;
                                            }
                                            if (WasHeader)
                                            {
                                                if (N.ChildNodes[_i].Name == "table")
                                                {
                                                    SatTrans = ParseTable(N.ChildNodes[_i], _i, FS1W);
                                                }
                                                if (N.ChildNodes[_i].Name == "div")
                                                {
                                                    ParseDiv(N.ChildNodes[_i], _i, FS2W, TypeByPID, SatTrans);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            FS1W.Close();
            FS1.Close();
            FS2W.Close();
            FS2.Close();
            BeamListWriteFile(I);
        }
Example #3
0
        public override void Parse(int I, bool TypeByPID)
        {
            File.Delete(TransFileName(I));
            File.Delete(ChanFileName(I));
            if (!File.Exists(DataFileName(I)))
            {
                return;
            }

            FileStream   FS1  = new FileStream(TransFileName(I), FileMode.CreateNew, FileAccess.Write);
            StreamWriter FS1W = new StreamWriter(FS1);

            FS1W.WriteLine("Txp No\tSource\tDate\tFreq\tPol\tMode\tSR-FEC\tProvider Name\tEncryption\tONID-TID\tFootPrints\tEIRP(dBW)\tComments\tRow");

            FileStream   FS2  = new FileStream(ChanFileName(I), FileMode.CreateNew, FileAccess.Write);
            StreamWriter FS2W = new StreamWriter(FS2);

            FS2W.WriteLine("Freq\tPol\tSR\tBeam\tType\tChannel Name\tFTA\tV.PID\tA.PID\tSID\tRow");

            BeamList.Clear();

            HtmlAgilityPack.HtmlDocument HTMLDoc = new HtmlAgilityPack.HtmlDocument();
            FileStream   HFS  = new FileStream(DataFileName(I), FileMode.Open, FileAccess.Read);
            StreamReader HFSR = new StreamReader(HFS);
            string       RAW  = HFSR.ReadToEnd();

            HFSR.Close();
            HFS.Close();
            HTMLDoc.LoadHtml(RAW);
            for (int ii = 0; ii < HTMLDoc.DocumentNode.ChildNodes.Count; ii++)
            {
                if (HTMLDoc.DocumentNode.ChildNodes[ii].Name == "html")
                {
                    for (int iii = 0; iii < HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes.Count; iii++)
                    {
                        if (HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].Name == "body")
                        {
                            for (int iiii = 0; iiii < HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes.Count; iiii++)
                            {
                                if (HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes[iiii].Name == "table")
                                {
                                    int RowN = 0;
                                    for (int iiiii = 0; iiiii < HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes[iiii].ChildNodes.Count; iiiii++)
                                    {
                                        if (HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes[iiii].ChildNodes[iiiii].Name == "tr")
                                        {
                                            RowN++;
                                        }
                                    }
                                    if (RowN >= 3)
                                    {
                                        ChannelTable(I, HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes[iiii], ref FS1W, ref FS2W, TypeByPID);
                                    }
                                }
                            }
                        }
                    }
                }
            }

            FS1W.Close();
            FS1.Close();
            FS2W.Close();
            FS2.Close();
            BeamListWriteFile(I);
        }
Example #4
0
        public override void Parse(int I, bool TypeByPID)
        {
            File.Delete(TransFileName(I));
            File.Delete(ChanFileName(I));
            if (!File.Exists(DataFileName(I)))
            {
                return;
            }

            FileStream   FS1  = new FileStream(TransFileName(I), FileMode.CreateNew, FileAccess.Write);
            StreamWriter FS1W = new StreamWriter(FS1);

            FS1W.WriteLine("Frequency\tPol\tTxp\tBeam\tEIRP (dbW)\tSystem\tModulation\tSR-FEC\tProvider\tONID-TID\tC/N lock\tEncryption\tSource\tUpdated\tRow");

            FileStream   FS2  = new FileStream(ChanFileName(I), FileMode.CreateNew, FileAccess.Write);
            StreamWriter FS2W = new StreamWriter(FS2);

            FS2W.WriteLine("Freq\tPol\tSR\tBeam\tType\tSID\tName\tFTA\tCompression\tVPID\tAPID Lang\tRow");

            BeamList.Clear();

            HtmlAgilityPack.HtmlDocument HTMLDoc = new HtmlAgilityPack.HtmlDocument();
            FileStream   HFS  = new FileStream(DataFileName(I), FileMode.Open, FileAccess.Read);
            StreamReader HFSR = new StreamReader(HFS, System.Text.Encoding.GetEncoding("ISO-8859-1"));
            string       RAW  = HFSR.ReadToEnd();

            HFSR.Close();
            HFS.Close();
            HTMLDoc.LoadHtml(RAW);

            RowN  = 0;
            RowN0 = 0;
            RowX  = 0;

            for (int ii = 0; ii < HTMLDoc.DocumentNode.ChildNodes.Count; ii++)
            {
                if (HTMLDoc.DocumentNode.ChildNodes[ii].Name == "html")
                {
                    for (int iii = 0; iii < HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes.Count; iii++)
                    {
                        if (HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].Name == "body")
                        {
                            for (int iiii = 0; iiii < HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes.Count; iiii++)
                            {
                                if (HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes[iiii].Name == "div")
                                {
                                    HtmlAgilityPack.HtmlNode N = HTMLDoc.DocumentNode.ChildNodes[ii].ChildNodes[iii].ChildNodes[iiii];
                                    for (int i_ = 0; i_ < N.ChildNodes.Count; i_++)
                                    {
                                        if (N.ChildNodes[i_].Name == "table")
                                        {
                                            if (N.ChildNodes[i_].Attributes["class"].Value == "bigtable")
                                            {
                                                for (int ii_ = 0; ii_ < N.ChildNodes[i_].ChildNodes.Count; ii_++)
                                                {
                                                    if (N.ChildNodes[i_].ChildNodes[ii_].Name == "tr")
                                                    {
                                                        for (int iii_ = 0; iii_ < N.ChildNodes[i_].ChildNodes[ii_].ChildNodes.Count; iii_++)
                                                        {
                                                            if (N.ChildNodes[i_].ChildNodes[ii_].ChildNodes[iii_].Name == "td")
                                                            {
                                                                if (ToInt(N.ChildNodes[i_].ChildNodes[ii_].ChildNodes[iii_].Attributes["width"].Value) >= 500)
                                                                {
                                                                    HtmlAgilityPack.HtmlNode NN = N.ChildNodes[i_].ChildNodes[ii_].ChildNodes[iii_];
                                                                    for (int i__ = 0; i__ < NN.ChildNodes.Count; i__++)
                                                                    {
                                                                        if (NN.ChildNodes[i__].Name == "table")
                                                                        {
                                                                            if (NN.ChildNodes[i__].Attributes.Contains("width"))
                                                                            {
                                                                                if (ToInt(NN.ChildNodes[i__].Attributes["width"].Value) >= 500)
                                                                                {
                                                                                    ChannelTable(I, NN.ChildNodes[i__], ref FS1W, ref FS2W, TypeByPID);
                                                                                    RowX += 1000;
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            FS1W.Close();
            FS1.Close();
            FS2W.Close();
            FS2.Close();
            BeamListWriteFile(I);
        }
        public override void Parse(int I, bool TypeByPID)
        {
            File.Delete(TransFileName(I));
            File.Delete(ChanFileName(I));
            if (!File.Exists(DataFileName(I)))
            {
                return;
            }


            FileStream FS1 = new FileStream(TransFileName(I), FileMode.CreateNew, FileAccess.Write);
            StreamWriter FS1W = new StreamWriter(FS1);
            FS1W.WriteLine("Freq\tPol\tSR\tFEC\tSat\tBeam\tMod\tFormat\tInfo\tRow");

            FileStream FS2 = new FileStream(ChanFileName(I), FileMode.CreateNew, FileAccess.Write);
            StreamWriter FS2W = new StreamWriter(FS2);
            FS2W.WriteLine("Freq\tPol\tSR\tBeam\tType\tChannel\tT\tEncryption\tFTA\tPackage\tRes\tCompression\tV_PID\tA_PID\tSID\tOwner\tDate\tRow");

            BeamList.Clear();

            HtmlAgilityPack.HtmlDocument HTMLDoc = new HtmlAgilityPack.HtmlDocument();
            FileStream HFS = new FileStream(DataFileName(I), FileMode.Open, FileAccess.Read);
            StreamReader HFSR = new StreamReader(HFS);
            string RAW = HFSR.ReadToEnd();
            HFSR.Close();
            HFS.Close();
            HTMLDoc.LoadHtml(RAW);

            HtmlAgilityPack.HtmlNode ChannelTable = null;
            ChannelGetNode(HTMLDoc.DocumentNode, ref ChannelTable);

            string[] SatTrans = null;
            string[] SatChan = null;

            if (ChannelTable != null)
            {
            	for (int i = 0; i < ChannelTable.ChildNodes.Count; i++)
            	{
            		if (ChannelTable.ChildNodes[i].Name.ToUpperInvariant() == "TR")
            		{
            			List<HtmlAgilityPack.HtmlNode> TD = new List<HtmlAgilityPack.HtmlNode>();
            			for (int ii = 0; ii < ChannelTable.ChildNodes[i].ChildNodes.Count; ii++)
            			{
            				if ((ChannelTable.ChildNodes[i].ChildNodes[ii].Name.ToUpperInvariant() == "TD") || (ChannelTable.ChildNodes[i].ChildNodes[ii].Name.ToUpperInvariant() == "TH"))
            				{
            					TD.Add(ChannelTable.ChildNodes[i].ChildNodes[ii]);
            				}
            			}
            			
            			
            			// Transponder
            			if (ChannelTable.ChildNodes[i].Attributes["class"].Value == "index group_tr")
            			{
            				if (TD[1].Attributes["class"].Value == "group_td nobr")
            				{
            					HtmlAgilityPack.HtmlNode NN = TD[1].LastChild;
            					SatTrans = new string[20];
            					
            					SatTrans[0] = ClearString(NN.ChildNodes[1].InnerText);
            					SatTrans[1] = ClearString(NN.ChildNodes[2].InnerText);
            					SatTrans[2] = ClearString(NN.ChildNodes[3].InnerText);
            					SatTrans[3] = ClearString(NN.ChildNodes[4].InnerText);
            					SatTrans[4] = ClearString(NN.ChildNodes[5].InnerText);
            					SatTrans[5] = ClearString(NN.ChildNodes[6].InnerText);
            					SatTrans[6] = ClearString(NN.ChildNodes[7].InnerText);
            					SatTrans[7] = ClearString(NN.ChildNodes[8].InnerText);
            					SatTrans[8] = ClearString(NN.ChildNodes[9].InnerText);
            					
            					FS1W.Write(SatTrans[0]);
            					FS1W.Write("\t");
            					FS1W.Write(SatTrans[1]);
            					FS1W.Write("\t");
            					FS1W.Write(SatTrans[2]);
            					FS1W.Write("\t");
            					FS1W.Write(SatTrans[3]);
            					FS1W.Write("\t");
            					FS1W.Write(SatTrans[4]);
            					FS1W.Write("\t");
            					FS1W.Write(SatTrans[5]);
            					FS1W.Write("\t");
            					FS1W.Write(SatTrans[6]);
            					FS1W.Write("\t");
            					FS1W.Write(SatTrans[7]);
            					FS1W.Write("\t");
            					FS1W.Write(SatTrans[8]);
            					FS1W.Write("\t");
            					FS1W.Write(i.ToString());
            					FS1W.WriteLine();
            					BeamListAdd(SatTrans[5]);
            				}
            			}

            			// Channel
            			if (ChannelTable.ChildNodes[i].Attributes["class"].Value.StartsWith("index class_tr"))
            			{
            				if (TD.Count == 16)
            				{
            					SatChan = new string[20];
            					
            					SatChan[0] = ClearString(RemoveEscape(TD[2].InnerText));
            					SatChan[1] = ClearString(TD[3].InnerText);
            					
            					// Encryption
            					PrepareInfo2(TD[4]);
            					SatChan[2] = "";
            					for (int ii = 0; ii < InfoText.Count; ii++)
            					{
            						if (SatChan[2] != "")
            						{
            							SatChan[2] += "|";
            						}
            						SatChan[2] += InfoText[ii];
            					}
            					
            					// Package
            					PrepareInfo2(TD[5]);
            					SatChan[3] = "";
            					for (int ii = 0; ii < InfoText.Count; ii++)
            					{
            						if (SatChan[3] != "")
            						{
            							SatChan[3] += "|";
            						}
            						SatChan[3] += InfoText[ii];
            					}

            					SatChan[4] = ClearString(TD[6].InnerText);
            					SatChan[5] = ClearString(TD[7].InnerText);
            					SatChan[6] = ClearString(TD[8].InnerText);
            					
            					PrepareInfo2(TD[9]);
            					for (int ii = 0; ii < InfoText.Count; ii++)
            					{
            						InfoText[ii] = LangRemCodec(InfoText[ii], "AAC");
                                    InfoText[ii] = LangRemCodec(InfoText[ii], "AC3+");
                                    InfoText[ii] = LangRemCodec(InfoText[ii], "AС3+");
                                    InfoText[ii] = LangRemCodec(InfoText[ii], "AC3");
                                    InfoText[ii] = LangRemCodec(InfoText[ii], "AС3");
                                    InfoText[ii] = LangRemCodec(InfoText[ii], "DD");
            						InfoText[ii] = LangRemCodec(InfoText[ii], "(E-AC3)");
            					}
            					List<string> InfoTextX = new List<string>();
            					for (int ii = 0; ii < InfoText.Count; ii++)
            					{
            						string[] X = InfoText[ii].Split(' ');
            						for (int iii = 1; iii < X.Length; iii++)
            						{
            							InfoTextX.Add(X[0] + " " + X[iii]);
            						}
            					}
            					InfoText.Clear();
            					for (int ii = 0; ii < InfoTextX.Count; ii++)
            					{
            						InfoText.Add(InfoTextX[ii]);
            					}
            					
            					
            					bool HasV = ((SatChan[6] != "") && (SatChan[6] != "0"));
            					bool HasA = false;
            					
            					
            					LangList();
            					SatChan[7] = "";
            					for (int ii = 0; ii < InfoText.Count; ii++)
            					{
            						if (SatChan[7] != "")
            						{
            							SatChan[7] += "|";
            						}
            						SatChan[7] += InfoText[ii];
            						HasA = true;
            					}

            					SatChan[8] = ClearString(TD[10].InnerText);
            					SatChan[9] = ClearString(TD[11].InnerText);
            					SatChan[10] = ClearString(TD[12].InnerText);
            					
            					FS2W.Write(SatTrans[0]);
            					FS2W.Write("\t");
            					FS2W.Write(SatTrans[1]);
            					FS2W.Write("\t");
            					FS2W.Write(SatTrans[2]);
            					FS2W.Write("\t");
            					FS2W.Write(SatTrans[5]);
            					FS2W.Write("\t");
            					if ((!HasA) && (!HasV))
            					{
            						FS2W.Write("DATA");
            					}
            					if ((HasA) && (!HasV))
            					{
            						FS2W.Write("R");
            					}
            					if ((!HasA) && (HasV))
            					{
            						FS2W.Write("IMG");
            					}
            					if ((HasA) && (HasV))
            					{
            						FS2W.Write("TV");
            					}
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[0]);
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[1]);
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[2]);
            					FS2W.Write("\t");
            					
            					bool IsFTA = false;
            					if (SatChan[2].ToUpperInvariant().Contains("|FTA|"))
            					{
            						IsFTA = true;
            					}
            					if (SatChan[2].ToUpperInvariant().StartsWith("FTA|"))
            					{
            						IsFTA = true;
            					}
            					if (SatChan[2].ToUpperInvariant().EndsWith("|FTA"))
            					{
            						IsFTA = true;
            					}
            					if (SatChan[2].ToUpperInvariant().Equals("FTA"))
            					{
            						IsFTA = true;
            					}
            					FS2W.Write(IsFTA ? "Yes" : "No");

            					FS2W.Write("\t");
            					FS2W.Write(SatChan[3]);
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[4]);
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[5]);
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[6]);
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[7]);
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[8]);
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[9]);
            					FS2W.Write("\t");
            					FS2W.Write(SatChan[10]);
            					FS2W.Write("\t");
            					FS2W.Write(i.ToString());
            					FS2W.Write("\t");


            					FS2W.WriteLine();
            				}
            			}
            		}
            	}
            }
            
            FS1W.Close();
            FS1.Close();
            FS2W.Close();
            FS2.Close();
            BeamListWriteFile(I);
        }