First drop.
authorStephaneLenclud
Thu, 14 May 2015 22:43:17 +0200
changeset 01d4344872495
child 1 f203331a8f4a
First drop.
Basic Sky Deutschland package frequency parssing.
App.config
Channel.cs
MainForm.Designer.cs
MainForm.cs
MainForm.resx
Program.cs
Properties/AssemblyInfo.cs
Properties/Resources.Designer.cs
Properties/Resources.resx
Properties/Settings.Designer.cs
Properties/Settings.settings
SatChanGen.csproj
SatChanGen.sln
packages.config
packages/repositories.config
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/App.config	Thu May 14 22:43:17 2015 +0200
     1.3 @@ -0,0 +1,6 @@
     1.4 +<?xml version="1.0" encoding="utf-8" ?>
     1.5 +<configuration>
     1.6 +    <startup> 
     1.7 +        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
     1.8 +    </startup>
     1.9 +</configuration>
    1.10 \ No newline at end of file
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/Channel.cs	Thu May 14 22:43:17 2015 +0200
     2.3 @@ -0,0 +1,82 @@
     2.4 +using System;
     2.5 +using System.Collections.Generic;
     2.6 +using System.Linq;
     2.7 +using System.Reflection;
     2.8 +using System.Runtime.CompilerServices;
     2.9 +using System.Text;
    2.10 +using System.Threading.Tasks;
    2.11 +
    2.12 +namespace SatChanGen
    2.13 +{
    2.14 +	class Channel
    2.15 +	{
    2.16 +		//19.2E
    2.17 +		public string OrbitalPosition { get; set; }
    2.18 +		//Astra 1M
    2.19 +		public string Satellite { get; set; }
    2.20 +		//10773.25
    2.21 +		public string Frequency { get; set; }
    2.22 +		//Horizontal/Vertical
    2.23 +		public string Polarisation { get; set; }
    2.24 +		//53
    2.25 +		public string Transponder { get; set; }
    2.26 +		//Astra 1M
    2.27 +		public string Beam { get; set; }
    2.28 +		//DVB-S2
    2.29 +		public string Standard { get; set; }
    2.30 +		//8PSK
    2.31 +		public string Modulation { get; set; }
    2.32 +		//22000
    2.33 +		public string SymbolRate { get; set; }
    2.34 +		//3/4
    2.35 +		public string FEC { get; set; }
    2.36 +		//ASTRA 1
    2.37 +		public string Provider { get; set; }
    2.38 +		//47.9 Mbps
    2.39 +		public string Bitrate { get; set; }
    2.40 +		//1
    2.41 +		public string NetworkID { get; set; }
    2.42 +		//1053
    2.43 +		public string TransponderID { get; set; }
    2.44 +		//------------------------------------------------------
    2.45 +		//Sky Atlantic HD
    2.46 +		public string Name { get; set; }
    2.47 +		//Germany
    2.48 +		public string Country { get; set; }
    2.49 +		//Entertainment
    2.50 +		public string Category { get; set; }
    2.51 +		//Sky Deutschland
    2.52 +		public string Packages { get; set; }
    2.53 +		//
    2.54 +		public string Encryption { get; set; }
    2.55 +		//
    2.56 +		public string SID { get; set; }
    2.57 +		//
    2.58 +		public string VPID { get; set; }
    2.59 +		//
    2.60 +		public string Audio { get; set; }
    2.61 +		//
    2.62 +		public string PMT { get; set; }
    2.63 +		//
    2.64 +		public string PCR { get; set; }
    2.65 +		//
    2.66 +		public string TXT { get; set; }
    2.67 +
    2.68 +		//////
    2.69 +		public override string ToString()
    2.70 +		{
    2.71 +			string res = "";
    2.72 +			PropertyInfo[] properties = typeof(Channel).GetProperties();
    2.73 +			foreach (PropertyInfo property in properties)
    2.74 +			{
    2.75 +				object value = property.GetValue(this);
    2.76 +				if (value is string)
    2.77 +				{
    2.78 +					res += property.Name + ": " + value + "\n";
    2.79 +				}
    2.80 +			}
    2.81 +
    2.82 +			return res;
    2.83 +		}
    2.84 +	}
    2.85 +}
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/MainForm.Designer.cs	Thu May 14 22:43:17 2015 +0200
     3.3 @@ -0,0 +1,61 @@
     3.4 +namespace SatChanGen
     3.5 +{
     3.6 +    partial class MainForm
     3.7 +    {
     3.8 +        /// <summary>
     3.9 +        /// Required designer variable.
    3.10 +        /// </summary>
    3.11 +        private System.ComponentModel.IContainer components = null;
    3.12 +
    3.13 +        /// <summary>
    3.14 +        /// Clean up any resources being used.
    3.15 +        /// </summary>
    3.16 +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    3.17 +        protected override void Dispose(bool disposing)
    3.18 +        {
    3.19 +            if (disposing && (components != null))
    3.20 +            {
    3.21 +                components.Dispose();
    3.22 +            }
    3.23 +            base.Dispose(disposing);
    3.24 +        }
    3.25 +
    3.26 +        #region Windows Form Designer generated code
    3.27 +
    3.28 +        /// <summary>
    3.29 +        /// Required method for Designer support - do not modify
    3.30 +        /// the contents of this method with the code editor.
    3.31 +        /// </summary>
    3.32 +        private void InitializeComponent()
    3.33 +        {
    3.34 +            this.buttonGenerate = new System.Windows.Forms.Button();
    3.35 +            this.SuspendLayout();
    3.36 +            // 
    3.37 +            // buttonGenerate
    3.38 +            // 
    3.39 +            this.buttonGenerate.Location = new System.Drawing.Point(192, 138);
    3.40 +            this.buttonGenerate.Name = "buttonGenerate";
    3.41 +            this.buttonGenerate.Size = new System.Drawing.Size(75, 23);
    3.42 +            this.buttonGenerate.TabIndex = 0;
    3.43 +            this.buttonGenerate.Text = "Generate";
    3.44 +            this.buttonGenerate.UseVisualStyleBackColor = true;
    3.45 +            this.buttonGenerate.Click += new System.EventHandler(this.buttonGenerate_Click);
    3.46 +            // 
    3.47 +            // MainForm
    3.48 +            // 
    3.49 +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    3.50 +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    3.51 +            this.ClientSize = new System.Drawing.Size(727, 521);
    3.52 +            this.Controls.Add(this.buttonGenerate);
    3.53 +            this.Name = "MainForm";
    3.54 +            this.Text = "Sattelite Channel Generator";
    3.55 +            this.ResumeLayout(false);
    3.56 +
    3.57 +        }
    3.58 +
    3.59 +        #endregion
    3.60 +
    3.61 +        private System.Windows.Forms.Button buttonGenerate;
    3.62 +    }
    3.63 +}
    3.64 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/MainForm.cs	Thu May 14 22:43:17 2015 +0200
     4.3 @@ -0,0 +1,110 @@
     4.4 +using System;
     4.5 +using System.Collections.Generic;
     4.6 +using System.ComponentModel;
     4.7 +using System.Data;
     4.8 +using System.Drawing;
     4.9 +using System.Linq;
    4.10 +using System.Text;
    4.11 +using System.Threading.Tasks;
    4.12 +using System.Windows.Forms;
    4.13 +using CsQuery;
    4.14 +using System.Diagnostics;
    4.15 +using System.Net;
    4.16 +
    4.17 +
    4.18 +
    4.19 +namespace SatChanGen
    4.20 +{
    4.21 +    public partial class MainForm : Form
    4.22 +    {
    4.23 +        public MainForm()
    4.24 +        {
    4.25 +            InitializeComponent();
    4.26 +        }
    4.27 +
    4.28 +        private void buttonGenerate_Click(object sender, EventArgs e)
    4.29 +        {
    4.30 +
    4.31 +            string kos = new WebClient().DownloadString("http://en.kingofsat.net/pack-skygermany.php");
    4.32 +            //Debug.Write(kos);
    4.33 +
    4.34 +            CQ dom = kos;
    4.35 +
    4.36 +			//Get all the Frequency elements in our page
    4.37 +            CQ sats = dom[".frq"];
    4.38 +
    4.39 +            foreach (IDomObject frq in sats.ToList())
    4.40 +            {
    4.41 +	            Debug.Write("=====================\n");
    4.42 +	            Channel common=new Channel();
    4.43 +
    4.44 +				//Parse channel details
    4.45 +	            common.OrbitalPosition = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td > a > font").Get(0).InnerText);
    4.46 +				common.Satellite = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(2) > a").Get(0).InnerText);
    4.47 +				common.Frequency = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(3)").Get(0).InnerText);
    4.48 +				common.Polarisation = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(4)").Get(0).InnerText);
    4.49 +				common.Transponder = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(5) > a").Get(0).InnerText);
    4.50 +				common.Beam = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(6) > a").Get(0).InnerText);
    4.51 +				common.Standard = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(7)").Get(0).InnerText);
    4.52 +				common.Modulation = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(8)").Get(0).InnerText);
    4.53 +				common.SymbolRate = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(9) > a").Get(0).InnerText);
    4.54 +				common.FEC = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(9) > a:nth-child(2)").Get(0).InnerText);
    4.55 +	            try
    4.56 +	            {
    4.57 +					common.Provider = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(10) > b").Get(0).InnerText);
    4.58 +	            }
    4.59 +	            catch (Exception)
    4.60 +	            {			
    4.61 +	            }
    4.62 +
    4.63 +				common.Bitrate = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(10)").Get(0).InnerText);
    4.64 +	            if (common.Bitrate.Substring(0, ", ".Length) == ", ")
    4.65 +	            {
    4.66 +					common.Bitrate = common.Bitrate.Substring(", ".Length, common.Bitrate.Length - ", ".Length);
    4.67 +	            }
    4.68 +				//
    4.69 +				common.NetworkID = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(11)").Get(0).InnerText);
    4.70 +				common.NetworkID = common.NetworkID.Substring("NID:".Length, common.NetworkID.Length - "NID:".Length);
    4.71 +				//
    4.72 +				common.TransponderID = WebUtility.HtmlDecode(frq.Cq().Find("tbody > tr > td:nth-child(12)").Get(0).InnerText);
    4.73 +				common.TransponderID = common.TransponderID.Substring("TID:".Length, common.TransponderID.Length - "TID:".Length);
    4.74 +
    4.75 +				//Now get all the channels for that frequency
    4.76 +				//Channel common = new Channel();
    4.77 +
    4.78 +								
    4.79 +				Debug.Write(common.ToString());
    4.80 +
    4.81 +            }
    4.82 +
    4.83 +            //Debug.Write(sats.Text());
    4.84 +
    4.85 +            /*
    4.86 +            CQ dom = "<div>Hello world! <b>I am feeling bold!</b> What about <b>you?</b></div>";
    4.87 +
    4.88 +
    4.89 +            CQ bold = dom["b"];               /// find all "b" nodes (there are two in this example)
    4.90 +
    4.91 +            
    4.92 +  //> bold.ToList()
    4.93 +  //> Count = 2
    4.94 +  //> [0]: {<b>...</b>}
    4.95 +  //> [1]: {<b>...</b>}
    4.96 +
    4.97 +  //> bold.First().RenderSelection()
    4.98 +  //> "<b>I am feeling bold!</b>"
    4.99 +            
   4.100 +            string boldText = bold.Text();        /// jQuery text method;
   4.101 +
   4.102 +  //> boldText
   4.103 +  //> "I am feeling bold! you?"
   4.104 +
   4.105 +            bold.Remove();                        /// jQuery Remove method
   4.106 +
   4.107 +            string html = dom.Render();
   4.108 +
   4.109 +            Debug.Write(html);
   4.110 +            */
   4.111 +        }
   4.112 +    }
   4.113 +}
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/MainForm.resx	Thu May 14 22:43:17 2015 +0200
     5.3 @@ -0,0 +1,120 @@
     5.4 +<?xml version="1.0" encoding="utf-8"?>
     5.5 +<root>
     5.6 +  <!-- 
     5.7 +    Microsoft ResX Schema 
     5.8 +    
     5.9 +    Version 2.0
    5.10 +    
    5.11 +    The primary goals of this format is to allow a simple XML format 
    5.12 +    that is mostly human readable. The generation and parsing of the 
    5.13 +    various data types are done through the TypeConverter classes 
    5.14 +    associated with the data types.
    5.15 +    
    5.16 +    Example:
    5.17 +    
    5.18 +    ... ado.net/XML headers & schema ...
    5.19 +    <resheader name="resmimetype">text/microsoft-resx</resheader>
    5.20 +    <resheader name="version">2.0</resheader>
    5.21 +    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    5.22 +    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    5.23 +    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    5.24 +    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    5.25 +    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
    5.26 +        <value>[base64 mime encoded serialized .NET Framework object]</value>
    5.27 +    </data>
    5.28 +    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    5.29 +        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
    5.30 +        <comment>This is a comment</comment>
    5.31 +    </data>
    5.32 +                
    5.33 +    There are any number of "resheader" rows that contain simple 
    5.34 +    name/value pairs.
    5.35 +    
    5.36 +    Each data row contains a name, and value. The row also contains a 
    5.37 +    type or mimetype. Type corresponds to a .NET class that support 
    5.38 +    text/value conversion through the TypeConverter architecture. 
    5.39 +    Classes that don't support this are serialized and stored with the 
    5.40 +    mimetype set.
    5.41 +    
    5.42 +    The mimetype is used for serialized objects, and tells the 
    5.43 +    ResXResourceReader how to depersist the object. This is currently not 
    5.44 +    extensible. For a given mimetype the value must be set accordingly:
    5.45 +    
    5.46 +    Note - application/x-microsoft.net.object.binary.base64 is the format 
    5.47 +    that the ResXResourceWriter will generate, however the reader can 
    5.48 +    read any of the formats listed below.
    5.49 +    
    5.50 +    mimetype: application/x-microsoft.net.object.binary.base64
    5.51 +    value   : The object must be serialized with 
    5.52 +            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
    5.53 +            : and then encoded with base64 encoding.
    5.54 +    
    5.55 +    mimetype: application/x-microsoft.net.object.soap.base64
    5.56 +    value   : The object must be serialized with 
    5.57 +            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
    5.58 +            : and then encoded with base64 encoding.
    5.59 +
    5.60 +    mimetype: application/x-microsoft.net.object.bytearray.base64
    5.61 +    value   : The object must be serialized into a byte array 
    5.62 +            : using a System.ComponentModel.TypeConverter
    5.63 +            : and then encoded with base64 encoding.
    5.64 +    -->
    5.65 +  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    5.66 +    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    5.67 +    <xsd:element name="root" msdata:IsDataSet="true">
    5.68 +      <xsd:complexType>
    5.69 +        <xsd:choice maxOccurs="unbounded">
    5.70 +          <xsd:element name="metadata">
    5.71 +            <xsd:complexType>
    5.72 +              <xsd:sequence>
    5.73 +                <xsd:element name="value" type="xsd:string" minOccurs="0" />
    5.74 +              </xsd:sequence>
    5.75 +              <xsd:attribute name="name" use="required" type="xsd:string" />
    5.76 +              <xsd:attribute name="type" type="xsd:string" />
    5.77 +              <xsd:attribute name="mimetype" type="xsd:string" />
    5.78 +              <xsd:attribute ref="xml:space" />
    5.79 +            </xsd:complexType>
    5.80 +          </xsd:element>
    5.81 +          <xsd:element name="assembly">
    5.82 +            <xsd:complexType>
    5.83 +              <xsd:attribute name="alias" type="xsd:string" />
    5.84 +              <xsd:attribute name="name" type="xsd:string" />
    5.85 +            </xsd:complexType>
    5.86 +          </xsd:element>
    5.87 +          <xsd:element name="data">
    5.88 +            <xsd:complexType>
    5.89 +              <xsd:sequence>
    5.90 +                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    5.91 +                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
    5.92 +              </xsd:sequence>
    5.93 +              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
    5.94 +              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
    5.95 +              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
    5.96 +              <xsd:attribute ref="xml:space" />
    5.97 +            </xsd:complexType>
    5.98 +          </xsd:element>
    5.99 +          <xsd:element name="resheader">
   5.100 +            <xsd:complexType>
   5.101 +              <xsd:sequence>
   5.102 +                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   5.103 +              </xsd:sequence>
   5.104 +              <xsd:attribute name="name" type="xsd:string" use="required" />
   5.105 +            </xsd:complexType>
   5.106 +          </xsd:element>
   5.107 +        </xsd:choice>
   5.108 +      </xsd:complexType>
   5.109 +    </xsd:element>
   5.110 +  </xsd:schema>
   5.111 +  <resheader name="resmimetype">
   5.112 +    <value>text/microsoft-resx</value>
   5.113 +  </resheader>
   5.114 +  <resheader name="version">
   5.115 +    <value>2.0</value>
   5.116 +  </resheader>
   5.117 +  <resheader name="reader">
   5.118 +    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   5.119 +  </resheader>
   5.120 +  <resheader name="writer">
   5.121 +    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   5.122 +  </resheader>
   5.123 +</root>
   5.124 \ No newline at end of file
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/Program.cs	Thu May 14 22:43:17 2015 +0200
     6.3 @@ -0,0 +1,22 @@
     6.4 +using System;
     6.5 +using System.Collections.Generic;
     6.6 +using System.Linq;
     6.7 +using System.Threading.Tasks;
     6.8 +using System.Windows.Forms;
     6.9 +
    6.10 +namespace SatChanGen
    6.11 +{
    6.12 +    static class Program
    6.13 +    {
    6.14 +        /// <summary>
    6.15 +        /// The main entry point for the application.
    6.16 +        /// </summary>
    6.17 +        [STAThread]
    6.18 +        static void Main()
    6.19 +        {
    6.20 +            Application.EnableVisualStyles();
    6.21 +            Application.SetCompatibleTextRenderingDefault(false);
    6.22 +            Application.Run(new MainForm());
    6.23 +        }
    6.24 +    }
    6.25 +}
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/Properties/AssemblyInfo.cs	Thu May 14 22:43:17 2015 +0200
     7.3 @@ -0,0 +1,36 @@
     7.4 +using System.Reflection;
     7.5 +using System.Runtime.CompilerServices;
     7.6 +using System.Runtime.InteropServices;
     7.7 +
     7.8 +// General Information about an assembly is controlled through the following 
     7.9 +// set of attributes. Change these attribute values to modify the information
    7.10 +// associated with an assembly.
    7.11 +[assembly: AssemblyTitle("SatChanGen")]
    7.12 +[assembly: AssemblyDescription("")]
    7.13 +[assembly: AssemblyConfiguration("")]
    7.14 +[assembly: AssemblyCompany("")]
    7.15 +[assembly: AssemblyProduct("SatChanGen")]
    7.16 +[assembly: AssemblyCopyright("Copyright ©  2015")]
    7.17 +[assembly: AssemblyTrademark("")]
    7.18 +[assembly: AssemblyCulture("")]
    7.19 +
    7.20 +// Setting ComVisible to false makes the types in this assembly not visible 
    7.21 +// to COM components.  If you need to access a type in this assembly from 
    7.22 +// COM, set the ComVisible attribute to true on that type.
    7.23 +[assembly: ComVisible(false)]
    7.24 +
    7.25 +// The following GUID is for the ID of the typelib if this project is exposed to COM
    7.26 +[assembly: Guid("925f5c5b-b813-4fd4-8e5e-19f7ae8423a6")]
    7.27 +
    7.28 +// Version information for an assembly consists of the following four values:
    7.29 +//
    7.30 +//      Major Version
    7.31 +//      Minor Version 
    7.32 +//      Build Number
    7.33 +//      Revision
    7.34 +//
    7.35 +// You can specify all the values or you can default the Build and Revision Numbers 
    7.36 +// by using the '*' as shown below:
    7.37 +// [assembly: AssemblyVersion("1.0.*")]
    7.38 +[assembly: AssemblyVersion("1.0.0.0")]
    7.39 +[assembly: AssemblyFileVersion("1.0.0.0")]
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/Properties/Resources.Designer.cs	Thu May 14 22:43:17 2015 +0200
     8.3 @@ -0,0 +1,71 @@
     8.4 +//------------------------------------------------------------------------------
     8.5 +// <auto-generated>
     8.6 +//     This code was generated by a tool.
     8.7 +//     Runtime Version:4.0.30319.18408
     8.8 +//
     8.9 +//     Changes to this file may cause incorrect behavior and will be lost if
    8.10 +//     the code is regenerated.
    8.11 +// </auto-generated>
    8.12 +//------------------------------------------------------------------------------
    8.13 +
    8.14 +namespace SatChanGen.Properties
    8.15 +{
    8.16 +
    8.17 +
    8.18 +    /// <summary>
    8.19 +    ///   A strongly-typed resource class, for looking up localized strings, etc.
    8.20 +    /// </summary>
    8.21 +    // This class was auto-generated by the StronglyTypedResourceBuilder
    8.22 +    // class via a tool like ResGen or Visual Studio.
    8.23 +    // To add or remove a member, edit your .ResX file then rerun ResGen
    8.24 +    // with the /str option, or rebuild your VS project.
    8.25 +    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
    8.26 +    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    8.27 +    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    8.28 +    internal class Resources
    8.29 +    {
    8.30 +
    8.31 +        private static global::System.Resources.ResourceManager resourceMan;
    8.32 +
    8.33 +        private static global::System.Globalization.CultureInfo resourceCulture;
    8.34 +
    8.35 +        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
    8.36 +        internal Resources()
    8.37 +        {
    8.38 +        }
    8.39 +
    8.40 +        /// <summary>
    8.41 +        ///   Returns the cached ResourceManager instance used by this class.
    8.42 +        /// </summary>
    8.43 +        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
    8.44 +        internal static global::System.Resources.ResourceManager ResourceManager
    8.45 +        {
    8.46 +            get
    8.47 +            {
    8.48 +                if ((resourceMan == null))
    8.49 +                {
    8.50 +                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SatChanGen.Properties.Resources", typeof(Resources).Assembly);
    8.51 +                    resourceMan = temp;
    8.52 +                }
    8.53 +                return resourceMan;
    8.54 +            }
    8.55 +        }
    8.56 +
    8.57 +        /// <summary>
    8.58 +        ///   Overrides the current thread's CurrentUICulture property for all
    8.59 +        ///   resource lookups using this strongly typed resource class.
    8.60 +        /// </summary>
    8.61 +        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
    8.62 +        internal static global::System.Globalization.CultureInfo Culture
    8.63 +        {
    8.64 +            get
    8.65 +            {
    8.66 +                return resourceCulture;
    8.67 +            }
    8.68 +            set
    8.69 +            {
    8.70 +                resourceCulture = value;
    8.71 +            }
    8.72 +        }
    8.73 +    }
    8.74 +}
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/Properties/Resources.resx	Thu May 14 22:43:17 2015 +0200
     9.3 @@ -0,0 +1,117 @@
     9.4 +<?xml version="1.0" encoding="utf-8"?>
     9.5 +<root>
     9.6 +  <!-- 
     9.7 +    Microsoft ResX Schema 
     9.8 +    
     9.9 +    Version 2.0
    9.10 +    
    9.11 +    The primary goals of this format is to allow a simple XML format 
    9.12 +    that is mostly human readable. The generation and parsing of the 
    9.13 +    various data types are done through the TypeConverter classes 
    9.14 +    associated with the data types.
    9.15 +    
    9.16 +    Example:
    9.17 +    
    9.18 +    ... ado.net/XML headers & schema ...
    9.19 +    <resheader name="resmimetype">text/microsoft-resx</resheader>
    9.20 +    <resheader name="version">2.0</resheader>
    9.21 +    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    9.22 +    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    9.23 +    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    9.24 +    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    9.25 +    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
    9.26 +        <value>[base64 mime encoded serialized .NET Framework object]</value>
    9.27 +    </data>
    9.28 +    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    9.29 +        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
    9.30 +        <comment>This is a comment</comment>
    9.31 +    </data>
    9.32 +                
    9.33 +    There are any number of "resheader" rows that contain simple 
    9.34 +    name/value pairs.
    9.35 +    
    9.36 +    Each data row contains a name, and value. The row also contains a 
    9.37 +    type or mimetype. Type corresponds to a .NET class that support 
    9.38 +    text/value conversion through the TypeConverter architecture. 
    9.39 +    Classes that don't support this are serialized and stored with the 
    9.40 +    mimetype set.
    9.41 +    
    9.42 +    The mimetype is used for serialized objects, and tells the 
    9.43 +    ResXResourceReader how to depersist the object. This is currently not 
    9.44 +    extensible. For a given mimetype the value must be set accordingly:
    9.45 +    
    9.46 +    Note - application/x-microsoft.net.object.binary.base64 is the format 
    9.47 +    that the ResXResourceWriter will generate, however the reader can 
    9.48 +    read any of the formats listed below.
    9.49 +    
    9.50 +    mimetype: application/x-microsoft.net.object.binary.base64
    9.51 +    value   : The object must be serialized with 
    9.52 +            : System.Serialization.Formatters.Binary.BinaryFormatter
    9.53 +            : and then encoded with base64 encoding.
    9.54 +    
    9.55 +    mimetype: application/x-microsoft.net.object.soap.base64
    9.56 +    value   : The object must be serialized with 
    9.57 +            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
    9.58 +            : and then encoded with base64 encoding.
    9.59 +
    9.60 +    mimetype: application/x-microsoft.net.object.bytearray.base64
    9.61 +    value   : The object must be serialized into a byte array 
    9.62 +            : using a System.ComponentModel.TypeConverter
    9.63 +            : and then encoded with base64 encoding.
    9.64 +    -->
    9.65 +  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    9.66 +    <xsd:element name="root" msdata:IsDataSet="true">
    9.67 +      <xsd:complexType>
    9.68 +        <xsd:choice maxOccurs="unbounded">
    9.69 +          <xsd:element name="metadata">
    9.70 +            <xsd:complexType>
    9.71 +              <xsd:sequence>
    9.72 +                <xsd:element name="value" type="xsd:string" minOccurs="0" />
    9.73 +              </xsd:sequence>
    9.74 +              <xsd:attribute name="name" type="xsd:string" />
    9.75 +              <xsd:attribute name="type" type="xsd:string" />
    9.76 +              <xsd:attribute name="mimetype" type="xsd:string" />
    9.77 +            </xsd:complexType>
    9.78 +          </xsd:element>
    9.79 +          <xsd:element name="assembly">
    9.80 +            <xsd:complexType>
    9.81 +              <xsd:attribute name="alias" type="xsd:string" />
    9.82 +              <xsd:attribute name="name" type="xsd:string" />
    9.83 +            </xsd:complexType>
    9.84 +          </xsd:element>
    9.85 +          <xsd:element name="data">
    9.86 +            <xsd:complexType>
    9.87 +              <xsd:sequence>
    9.88 +                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    9.89 +                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
    9.90 +              </xsd:sequence>
    9.91 +              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
    9.92 +              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
    9.93 +              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
    9.94 +            </xsd:complexType>
    9.95 +          </xsd:element>
    9.96 +          <xsd:element name="resheader">
    9.97 +            <xsd:complexType>
    9.98 +              <xsd:sequence>
    9.99 +                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   9.100 +              </xsd:sequence>
   9.101 +              <xsd:attribute name="name" type="xsd:string" use="required" />
   9.102 +            </xsd:complexType>
   9.103 +          </xsd:element>
   9.104 +        </xsd:choice>
   9.105 +      </xsd:complexType>
   9.106 +    </xsd:element>
   9.107 +  </xsd:schema>
   9.108 +  <resheader name="resmimetype">
   9.109 +    <value>text/microsoft-resx</value>
   9.110 +  </resheader>
   9.111 +  <resheader name="version">
   9.112 +    <value>2.0</value>
   9.113 +  </resheader>
   9.114 +  <resheader name="reader">
   9.115 +    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   9.116 +  </resheader>
   9.117 +  <resheader name="writer">
   9.118 +    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   9.119 +  </resheader>
   9.120 +</root>
   9.121 \ No newline at end of file
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/Properties/Settings.Designer.cs	Thu May 14 22:43:17 2015 +0200
    10.3 @@ -0,0 +1,30 @@
    10.4 +//------------------------------------------------------------------------------
    10.5 +// <auto-generated>
    10.6 +//     This code was generated by a tool.
    10.7 +//     Runtime Version:4.0.30319.18408
    10.8 +//
    10.9 +//     Changes to this file may cause incorrect behavior and will be lost if
   10.10 +//     the code is regenerated.
   10.11 +// </auto-generated>
   10.12 +//------------------------------------------------------------------------------
   10.13 +
   10.14 +namespace SatChanGen.Properties
   10.15 +{
   10.16 +
   10.17 +
   10.18 +    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
   10.19 +    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
   10.20 +    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
   10.21 +    {
   10.22 +
   10.23 +        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
   10.24 +
   10.25 +        public static Settings Default
   10.26 +        {
   10.27 +            get
   10.28 +            {
   10.29 +                return defaultInstance;
   10.30 +            }
   10.31 +        }
   10.32 +    }
   10.33 +}
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/Properties/Settings.settings	Thu May 14 22:43:17 2015 +0200
    11.3 @@ -0,0 +1,7 @@
    11.4 +<?xml version='1.0' encoding='utf-8'?>
    11.5 +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
    11.6 +  <Profiles>
    11.7 +    <Profile Name="(Default)" />
    11.8 +  </Profiles>
    11.9 +  <Settings />
   11.10 +</SettingsFile>
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/SatChanGen.csproj	Thu May 14 22:43:17 2015 +0200
    12.3 @@ -0,0 +1,93 @@
    12.4 +<?xml version="1.0" encoding="utf-8"?>
    12.5 +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    12.6 +  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
    12.7 +  <PropertyGroup>
    12.8 +    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    12.9 +    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
   12.10 +    <ProjectGuid>{2308CCC9-1EF8-4BD0-8673-B1DE365736EB}</ProjectGuid>
   12.11 +    <OutputType>WinExe</OutputType>
   12.12 +    <AppDesignerFolder>Properties</AppDesignerFolder>
   12.13 +    <RootNamespace>SatChanGen</RootNamespace>
   12.14 +    <AssemblyName>SatChanGen</AssemblyName>
   12.15 +    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
   12.16 +    <FileAlignment>512</FileAlignment>
   12.17 +  </PropertyGroup>
   12.18 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
   12.19 +    <PlatformTarget>AnyCPU</PlatformTarget>
   12.20 +    <DebugSymbols>true</DebugSymbols>
   12.21 +    <DebugType>full</DebugType>
   12.22 +    <Optimize>false</Optimize>
   12.23 +    <OutputPath>bin\Debug\</OutputPath>
   12.24 +    <DefineConstants>DEBUG;TRACE</DefineConstants>
   12.25 +    <ErrorReport>prompt</ErrorReport>
   12.26 +    <WarningLevel>4</WarningLevel>
   12.27 +  </PropertyGroup>
   12.28 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
   12.29 +    <PlatformTarget>AnyCPU</PlatformTarget>
   12.30 +    <DebugType>pdbonly</DebugType>
   12.31 +    <Optimize>true</Optimize>
   12.32 +    <OutputPath>bin\Release\</OutputPath>
   12.33 +    <DefineConstants>TRACE</DefineConstants>
   12.34 +    <ErrorReport>prompt</ErrorReport>
   12.35 +    <WarningLevel>4</WarningLevel>
   12.36 +  </PropertyGroup>
   12.37 +  <ItemGroup>
   12.38 +    <Reference Include="CsQuery">
   12.39 +      <HintPath>packages\CsQuery.1.3.4\lib\net40\CsQuery.dll</HintPath>
   12.40 +    </Reference>
   12.41 +    <Reference Include="System" />
   12.42 +    <Reference Include="System.Core" />
   12.43 +    <Reference Include="System.Xml.Linq" />
   12.44 +    <Reference Include="System.Data.DataSetExtensions" />
   12.45 +    <Reference Include="Microsoft.CSharp" />
   12.46 +    <Reference Include="System.Data" />
   12.47 +    <Reference Include="System.Deployment" />
   12.48 +    <Reference Include="System.Drawing" />
   12.49 +    <Reference Include="System.Windows.Forms" />
   12.50 +    <Reference Include="System.Xml" />
   12.51 +  </ItemGroup>
   12.52 +  <ItemGroup>
   12.53 +    <Compile Include="Channel.cs" />
   12.54 +    <Compile Include="MainForm.cs">
   12.55 +      <SubType>Form</SubType>
   12.56 +    </Compile>
   12.57 +    <Compile Include="MainForm.Designer.cs">
   12.58 +      <DependentUpon>MainForm.cs</DependentUpon>
   12.59 +    </Compile>
   12.60 +    <Compile Include="Program.cs" />
   12.61 +    <Compile Include="Properties\AssemblyInfo.cs" />
   12.62 +    <EmbeddedResource Include="MainForm.resx">
   12.63 +      <DependentUpon>MainForm.cs</DependentUpon>
   12.64 +    </EmbeddedResource>
   12.65 +    <EmbeddedResource Include="Properties\Resources.resx">
   12.66 +      <Generator>ResXFileCodeGenerator</Generator>
   12.67 +      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
   12.68 +      <SubType>Designer</SubType>
   12.69 +    </EmbeddedResource>
   12.70 +    <Compile Include="Properties\Resources.Designer.cs">
   12.71 +      <AutoGen>True</AutoGen>
   12.72 +      <DependentUpon>Resources.resx</DependentUpon>
   12.73 +    </Compile>
   12.74 +    <None Include="packages.config" />
   12.75 +    <None Include="Properties\Settings.settings">
   12.76 +      <Generator>SettingsSingleFileGenerator</Generator>
   12.77 +      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
   12.78 +    </None>
   12.79 +    <Compile Include="Properties\Settings.Designer.cs">
   12.80 +      <AutoGen>True</AutoGen>
   12.81 +      <DependentUpon>Settings.settings</DependentUpon>
   12.82 +      <DesignTimeSharedInput>True</DesignTimeSharedInput>
   12.83 +    </Compile>
   12.84 +  </ItemGroup>
   12.85 +  <ItemGroup>
   12.86 +    <None Include="App.config" />
   12.87 +  </ItemGroup>
   12.88 +  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   12.89 +  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
   12.90 +       Other similar extension points exist, see Microsoft.Common.targets.
   12.91 +  <Target Name="BeforeBuild">
   12.92 +  </Target>
   12.93 +  <Target Name="AfterBuild">
   12.94 +  </Target>
   12.95 +  -->
   12.96 +</Project>
   12.97 \ No newline at end of file
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/SatChanGen.sln	Thu May 14 22:43:17 2015 +0200
    13.3 @@ -0,0 +1,22 @@
    13.4 +
    13.5 +Microsoft Visual Studio Solution File, Format Version 12.00
    13.6 +# Visual Studio 2013
    13.7 +VisualStudioVersion = 12.0.31101.0
    13.8 +MinimumVisualStudioVersion = 10.0.40219.1
    13.9 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SatChanGen", "SatChanGen.csproj", "{2308CCC9-1EF8-4BD0-8673-B1DE365736EB}"
   13.10 +EndProject
   13.11 +Global
   13.12 +	GlobalSection(SolutionConfigurationPlatforms) = preSolution
   13.13 +		Debug|Any CPU = Debug|Any CPU
   13.14 +		Release|Any CPU = Release|Any CPU
   13.15 +	EndGlobalSection
   13.16 +	GlobalSection(ProjectConfigurationPlatforms) = postSolution
   13.17 +		{2308CCC9-1EF8-4BD0-8673-B1DE365736EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
   13.18 +		{2308CCC9-1EF8-4BD0-8673-B1DE365736EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
   13.19 +		{2308CCC9-1EF8-4BD0-8673-B1DE365736EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
   13.20 +		{2308CCC9-1EF8-4BD0-8673-B1DE365736EB}.Release|Any CPU.Build.0 = Release|Any CPU
   13.21 +	EndGlobalSection
   13.22 +	GlobalSection(SolutionProperties) = preSolution
   13.23 +		HideSolutionNode = FALSE
   13.24 +	EndGlobalSection
   13.25 +EndGlobal
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/packages.config	Thu May 14 22:43:17 2015 +0200
    14.3 @@ -0,0 +1,4 @@
    14.4 +<?xml version="1.0" encoding="utf-8"?>
    14.5 +<packages>
    14.6 +  <package id="CsQuery" version="1.3.4" targetFramework="net45" />
    14.7 +</packages>
    14.8 \ No newline at end of file
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/packages/repositories.config	Thu May 14 22:43:17 2015 +0200
    15.3 @@ -0,0 +1,4 @@
    15.4 +<?xml version="1.0" encoding="utf-8"?>
    15.5 +<repositories>
    15.6 +  <repository path="..\packages.config" />
    15.7 +</repositories>
    15.8 \ No newline at end of file