diff --git a/FModel/App.config b/FModel/App.config index dae6e858..70ea13d1 100644 --- a/FModel/App.config +++ b/FModel/App.config @@ -1,4 +1,4 @@ - + @@ -157,6 +157,18 @@ 0 + + + + + + + + + + + + diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj index da4599bc..ca17954b 100644 --- a/FModel/FModel.csproj +++ b/FModel/FModel.csproj @@ -81,21 +81,24 @@ true - - ..\packages\Autoupdater.NET.Official.1.5.1\lib\net40\AutoUpdater.NET.dll + + ..\packages\Autoupdater.NET.Official.1.5.3\lib\net40\AutoUpdater.NET.dll False DLLs\csharp-wick.dll - - ..\packages\HtmlAgilityPack.1.11.7\lib\Net45\HtmlAgilityPack.dll + + ..\packages\TweetMoaSharp.6.0.0\lib\4.5\Hammock.ClientProfile.dll + + + ..\packages\HtmlAgilityPack.1.11.8\lib\Net45\HtmlAgilityPack.dll ..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll - - ..\packages\RestSharp.106.6.9\lib\net452\RestSharp.dll + + ..\packages\RestSharp.106.6.10\lib\net452\RestSharp.dll False @@ -118,6 +121,9 @@ + + ..\packages\TweetMoaSharp.6.0.0\lib\4.5\TweetSharp.dll + @@ -129,6 +135,12 @@ AESManager.cs + + Form + + + TweetForm.cs + @@ -214,6 +226,9 @@ Settings.cs + + TweetForm.cs + UpdateModeSettings.cs @@ -254,6 +269,7 @@ + diff --git a/FModel/Forms/TweetForm.Designer.cs b/FModel/Forms/TweetForm.Designer.cs new file mode 100644 index 00000000..666532b7 --- /dev/null +++ b/FModel/Forms/TweetForm.Designer.cs @@ -0,0 +1,238 @@ +namespace FModel.Forms +{ + partial class TweetForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TweetForm)); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.textBox4 = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // richTextBox1 + // + this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.richTextBox1.Location = new System.Drawing.Point(12, 90); + this.richTextBox1.MaxLength = 280; + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; + this.richTextBox1.Size = new System.Drawing.Size(386, 178); + this.richTextBox1.TabIndex = 0; + this.richTextBox1.Text = ""; + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.textBox3); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.textBox4); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.textBox2); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.textBox1); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(12, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(570, 72); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Settings"; + // + // textBox3 + // + this.textBox3.Location = new System.Drawing.Point(363, 46); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(201, 20); + this.textBox3.TabIndex = 7; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(282, 48); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(75, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Token Secret:"; + // + // textBox4 + // + this.textBox4.Location = new System.Drawing.Point(53, 45); + this.textBox4.Name = "textBox4"; + this.textBox4.Size = new System.Drawing.Size(222, 20); + this.textBox4.TabIndex = 5; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 48); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(41, 13); + this.label4.TabIndex = 4; + this.label4.Text = "Token:"; + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(379, 19); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(185, 20); + this.textBox2.TabIndex = 3; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(282, 22); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(91, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Consumer Secret:"; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(90, 19); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(185, 20); + this.textBox1.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(78, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Consumer Key:"; + // + // pictureBox1 + // + this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Location = new System.Drawing.Point(404, 90); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(178, 178); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 2; + this.pictureBox1.TabStop = false; + // + // button1 + // + this.button1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(101)))), ((int)(((byte)(214))))); + this.button1.Location = new System.Drawing.Point(507, 274); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 3; + this.button1.Text = "Tweet"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.Button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(404, 274); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 23); + this.button2.TabIndex = 4; + this.button2.Text = "Add Image"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.Button2_Click); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(12, 279); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(37, 13); + this.label5.TabIndex = 5; + this.label5.Text = "Status"; + // + // backgroundWorker1 + // + this.backgroundWorker1.WorkerReportsProgress = true; + this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.BackgroundWorker1_DoWork); + this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.BackgroundWorker1_RunWorkerCompleted); + // + // TweetForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(594, 304); + this.Controls.Add(this.label5); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.richTextBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "TweetForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Twitter"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Label label5; + private System.ComponentModel.BackgroundWorker backgroundWorker1; + } +} \ No newline at end of file diff --git a/FModel/Forms/TweetForm.cs b/FModel/Forms/TweetForm.cs new file mode 100644 index 00000000..0eb1bfe0 --- /dev/null +++ b/FModel/Forms/TweetForm.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Windows.Forms; +using TweetSharp; + +namespace FModel.Forms +{ + public partial class TweetForm : Form + { + private static string ImagePath { get; set; } + + public TweetForm() + { + InitializeComponent(); + + textBox1.Text = Properties.Settings.Default.tConsKey; + textBox2.Text = Properties.Settings.Default.tConsSecret; + textBox4.Text = Properties.Settings.Default.tToken; + textBox3.Text = Properties.Settings.Default.tTokenSecret; + } + + private void Button2_Click(object sender, EventArgs e) + { + ImagePath = null; + pictureBox1.Image = null; + + OpenFileDialog theDialog = new OpenFileDialog(); + theDialog.InitialDirectory = App.DefaultOutputPath + "\\Icons\\"; + theDialog.Title = @"Choose your image"; + theDialog.Filter = @"PNG Files (*.png)|*.png|JPEG Files (*.jpg)|*.jpg|BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*"; + + if (theDialog.ShowDialog() == DialogResult.OK) + { + ImagePath = theDialog.FileName; + pictureBox1.Image = Image.FromFile(ImagePath); + } + } + + private void Button1_Click(object sender, EventArgs e) + { + if (backgroundWorker1.IsBusy != true && !string.IsNullOrEmpty(richTextBox1.Text)) + { + backgroundWorker1.RunWorkerAsync(); + } + } + + private void BackgroundWorker1_DoWork(object sender, DoWorkEventArgs e) + { + Properties.Settings.Default.tConsKey = textBox1.Text; + Properties.Settings.Default.tConsSecret = textBox2.Text; + Properties.Settings.Default.tToken = textBox4.Text; + Properties.Settings.Default.tTokenSecret = textBox3.Text; + Properties.Settings.Default.Save(); + + TwitterService service = new TwitterService(Properties.Settings.Default.tConsKey, Properties.Settings.Default.tConsSecret); + service.AuthenticateWith(Properties.Settings.Default.tToken, Properties.Settings.Default.tTokenSecret); + Invoke(new Action(() => + { + label5.Text = "Status: Authentication to Twitter"; + })); + + Dictionary myDict = new Dictionary(); + if (pictureBox1.Image != null) + { + myDict.Add(Path.GetFileNameWithoutExtension(ImagePath), new FileStream(ImagePath, FileMode.Open, FileAccess.Read, FileShare.Read)); + } + + Invoke(new Action(() => + { + #pragma warning disable CS0618 + TwitterStatus response = service.SendTweetWithMedia(new SendTweetWithMediaOptions + { + Status = richTextBox1.Text, + Images = myDict + }); + #pragma warning restore CS0618 + })); + } + + private void BackgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + if (e.Error != null) + { + label5.Text = "Status: " + e.Error.Message; + } + else + { + label5.Text = "Status: Tweeted"; + } + } + } +} diff --git a/FModel/Forms/TweetForm.resx b/FModel/Forms/TweetForm.resx new file mode 100644 index 00000000..cdf63481 --- /dev/null +++ b/FModel/Forms/TweetForm.resx @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + 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 + UwXmhiUAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/FModel/MainWindow.Designer.cs b/FModel/MainWindow.Designer.cs index c9884d71..82fe7f90 100644 --- a/FModel/MainWindow.Designer.cs +++ b/FModel/MainWindow.Designer.cs @@ -80,6 +80,8 @@ namespace FModel this.copyFilePathWithoutExtensionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.copyFileNameWithoutExtensionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.saveAsJSONToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.tweetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.statusStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout(); this.panel1.SuspendLayout(); @@ -251,7 +253,9 @@ namespace FModel this.saveImageToolStripMenuItem, this.autoSaveImagesToolStripMenuItem, this.toolStripSeparator3, - this.mergeImagesToolStripMenuItem}); + this.mergeImagesToolStripMenuItem, + this.toolStripSeparator4, + this.tweetToolStripMenuItem}); this.imageToolStripMenuItem.Name = "imageToolStripMenuItem"; this.imageToolStripMenuItem.Size = new System.Drawing.Size(52, 20); this.imageToolStripMenuItem.Text = "Image"; @@ -259,7 +263,7 @@ namespace FModel // saveImageToolStripMenuItem // this.saveImageToolStripMenuItem.Name = "saveImageToolStripMenuItem"; - this.saveImageToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.saveImageToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.saveImageToolStripMenuItem.Text = "Save Image"; this.saveImageToolStripMenuItem.Click += new System.EventHandler(this.saveImageToolStripMenuItem_Click); // @@ -267,18 +271,18 @@ namespace FModel // this.autoSaveImagesToolStripMenuItem.CheckOnClick = true; this.autoSaveImagesToolStripMenuItem.Name = "autoSaveImagesToolStripMenuItem"; - this.autoSaveImagesToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.autoSaveImagesToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.autoSaveImagesToolStripMenuItem.Text = "Auto Save Images"; // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(165, 6); + this.toolStripSeparator3.Size = new System.Drawing.Size(177, 6); // // mergeImagesToolStripMenuItem // this.mergeImagesToolStripMenuItem.Name = "mergeImagesToolStripMenuItem"; - this.mergeImagesToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.mergeImagesToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.mergeImagesToolStripMenuItem.Text = "Merge Images"; this.mergeImagesToolStripMenuItem.Click += new System.EventHandler(this.mergeImagesToolStripMenuItem_Click); // @@ -554,6 +558,18 @@ namespace FModel this.saveAsJSONToolStripMenuItem1.Text = "Save as JSON"; this.saveAsJSONToolStripMenuItem1.Click += new System.EventHandler(this.saveAsJSONToolStripMenuItem1_Click); // + // toolStripSeparator4 + // + this.toolStripSeparator4.Name = "toolStripSeparator4"; + this.toolStripSeparator4.Size = new System.Drawing.Size(177, 6); + // + // tweetToolStripMenuItem + // + this.tweetToolStripMenuItem.Name = "tweetToolStripMenuItem"; + this.tweetToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.tweetToolStripMenuItem.Text = "Tweet"; + this.tweetToolStripMenuItem.Click += new System.EventHandler(this.TweetToolStripMenuItem_Click); + // // MainWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -638,6 +654,8 @@ namespace FModel private System.Windows.Forms.ToolStripMenuItem copyFilePathWithoutExtensionToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem copyFileNameWithoutExtensionToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem saveAsJSONToolStripMenuItem1; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; + private System.Windows.Forms.ToolStripMenuItem tweetToolStripMenuItem; } } diff --git a/FModel/MainWindow.cs b/FModel/MainWindow.cs index be72cf3b..49d14c87 100644 --- a/FModel/MainWindow.cs +++ b/FModel/MainWindow.cs @@ -1555,6 +1555,18 @@ namespace FModel { ImagesMerger.AskMergeImages(); } + private void TweetToolStripMenuItem_Click(object sender, EventArgs e) + { + var twitterForm = new TweetForm(); + if (Application.OpenForms[twitterForm.Name] == null) + { + twitterForm.Show(); + } + else + { + Application.OpenForms[twitterForm.Name].Focus(); + } + } #endregion #region FILES TOOLSTRIP diff --git a/FModel/MainWindow.resx b/FModel/MainWindow.resx index 6949cabc..c1dfa462 100644 --- a/FModel/MainWindow.resx +++ b/FModel/MainWindow.resx @@ -131,7 +131,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABa - CAAAAk1TRnQBSQFMAgEBAgEAAagBAQGoAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAAbABAQGwAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/FModel/Properties/Resources.Designer.cs b/FModel/Properties/Resources.Designer.cs index 7995e736..5bda9169 100644 --- a/FModel/Properties/Resources.Designer.cs +++ b/FModel/Properties/Resources.Designer.cs @@ -360,6 +360,16 @@ namespace FModel.Properties { } } + /// + /// Recherche une ressource localisée de type System.Drawing.Icon semblable à (Icône). + /// + internal static System.Drawing.Icon Twitter { + get { + object obj = ResourceManager.GetObject("Twitter", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + /// /// Recherche une ressource localisée de type System.Drawing.Bitmap. /// diff --git a/FModel/Properties/Resources.resx b/FModel/Properties/Resources.resx index b521ace4..f9c169d6 100644 --- a/FModel/Properties/Resources.resx +++ b/FModel/Properties/Resources.resx @@ -220,4 +220,7 @@ ..\Resources\BurbankBigCondensed-Black-vJapanese.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\twitter.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/FModel/Properties/Settings.Designer.cs b/FModel/Properties/Settings.Designer.cs index b513af8d..3989f474 100644 --- a/FModel/Properties/Settings.Designer.cs +++ b/FModel/Properties/Settings.Designer.cs @@ -610,5 +610,53 @@ namespace FModel.Properties { this["TokenExpiration"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string tConsKey { + get { + return ((string)(this["tConsKey"])); + } + set { + this["tConsKey"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string tConsSecret { + get { + return ((string)(this["tConsSecret"])); + } + set { + this["tConsSecret"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string tToken { + get { + return ((string)(this["tToken"])); + } + set { + this["tToken"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string tTokenSecret { + get { + return ((string)(this["tTokenSecret"])); + } + set { + this["tTokenSecret"] = value; + } + } } } diff --git a/FModel/Properties/Settings.settings b/FModel/Properties/Settings.settings index f0008e4c..e635be2c 100644 --- a/FModel/Properties/Settings.settings +++ b/FModel/Properties/Settings.settings @@ -149,5 +149,17 @@ 0 + + + + + + + + + + + + \ No newline at end of file diff --git a/FModel/Resources/twitter.ico b/FModel/Resources/twitter.ico new file mode 100644 index 00000000..3d3667ff Binary files /dev/null and b/FModel/Resources/twitter.ico differ diff --git a/FModel/packages.config b/FModel/packages.config index 1fd2ea4d..78e1bac3 100644 --- a/FModel/packages.config +++ b/FModel/packages.config @@ -1,8 +1,9 @@  - - + + - + + \ No newline at end of file