upper case challenges completion with all languages + twitter removed + challenges default banner used if no custom provided

This commit is contained in:
Asval 2019-08-15 18:20:21 +02:00
parent b46254669f
commit 75610d0b90
12 changed files with 55 additions and 739 deletions

View File

@ -61,18 +61,6 @@
<setting name="tryToOpenAssets" serializeAs="String">
<value>True</value>
</setting>
<setting name="tConsKey" serializeAs="String">
<value />
</setting>
<setting name="tConsSecret" serializeAs="String">
<value />
</setting>
<setting name="tToken" serializeAs="String">
<value />
</setting>
<setting name="tTokenSecret" serializeAs="String">
<value />
</setting>
<setting name="UMParameters" serializeAs="String">
<value />
</setting>

View File

@ -144,12 +144,6 @@
<Compile Include="Forms\AESManager.Designer.cs">
<DependentUpon>AESManager.cs</DependentUpon>
</Compile>
<Compile Include="Forms\TweetForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\TweetForm.Designer.cs">
<DependentUpon>TweetForm.cs</DependentUpon>
</Compile>
<Compile Include="Methods\AESManager\DynamicKeysManager.cs" />
<Compile Include="Methods\AESManager\DynamicKeys\AddToUI.cs" />
<Compile Include="Methods\AESManager\DynamicKeys\Keychain.cs" />
@ -225,9 +219,6 @@
<EmbeddedResource Include="Forms\Settings.resx">
<DependentUpon>Settings.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\TweetForm.resx">
<DependentUpon>TweetForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\UpdateModeSettings.resx">
<DependentUpon>UpdateModeSettings.cs</DependentUpon>
</EmbeddedResource>

View File

@ -1,193 +0,0 @@
namespace FModel.Forms
{
partial class TweetForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
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.checkBox1 = new System.Windows.Forms.CheckBox();
this.textBox5 = new System.Windows.Forms.TextBox();
this.comboBox1 = new System.Windows.Forms.ComboBox();
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, 66);
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.checkBox1);
this.groupBox1.Controls.Add(this.textBox5);
this.groupBox1.Controls.Add(this.comboBox1);
this.groupBox1.Location = new System.Drawing.Point(12, 12);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(570, 48);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Settings";
//
// checkBox1
//
this.checkBox1.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(504, 21);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(60, 17);
this.checkBox1.TabIndex = 8;
this.checkBox1.Text = "Reveal";
this.checkBox1.UseVisualStyleBackColor = true;
this.checkBox1.CheckedChanged += new System.EventHandler(this.CheckBox1_CheckedChanged);
//
// textBox5
//
this.textBox5.Location = new System.Drawing.Point(149, 19);
this.textBox5.Name = "textBox5";
this.textBox5.Size = new System.Drawing.Size(349, 20);
this.textBox5.TabIndex = 7;
this.textBox5.UseSystemPasswordChar = true;
this.textBox5.TextChanged += new System.EventHandler(this.TextBox5_TextChanged);
//
// comboBox1
//
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Items.AddRange(new object[] {
"Consumer API Key",
"Consumer API Secret",
"Access Token",
"Access Token Secret"});
this.comboBox1.Location = new System.Drawing.Point(6, 19);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(137, 21);
this.comboBox1.TabIndex = 6;
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.ComboBox1_SelectedIndexChanged);
//
// 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, 66);
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, 250);
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, 250);
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, 255);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(40, 13);
this.label5.TabIndex = 5;
this.label5.Text = "Status:";
//
// backgroundWorker1
//
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, 282);
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.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;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.TextBox textBox5;
private System.Windows.Forms.CheckBox checkBox1;
}
}

View File

@ -1,169 +0,0 @@
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; }
private static TwitterService service { get; set; }
public TweetForm()
{
InitializeComponent();
}
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)
{
label5.ForeColor = Color.FromArgb(255, 0, 0, 0);
string tweetText = "";
Invoke(new Action(() =>
{
tweetText = richTextBox1.Text;
}));
Properties.Settings.Default.Save();
if (service == null)
{
service = new TwitterService(Properties.Settings.Default.tConsKey, Properties.Settings.Default.tConsSecret);
service.AuthenticateWith(Properties.Settings.Default.tToken, Properties.Settings.Default.tTokenSecret);
UpdateStatus("Authentication to Twitter");
}
Dictionary<string, Stream> myDict = new Dictionary<string, Stream>();
if (pictureBox1.Image != null)
{
if (new System.IO.FileInfo(ImagePath).Length < 5000000)
{
myDict.Add(Path.GetFileNameWithoutExtension(ImagePath), new FileStream(ImagePath, FileMode.Open, FileAccess.Read, FileShare.Read));
}
else
{
throw new ArgumentException("File size can't be larger than 5mb.");
}
}
#pragma warning disable CS0618
if (pictureBox1.Image != null)
{
UpdateStatus("Tweeting with " + Path.GetFileNameWithoutExtension(ImagePath));
TwitterStatus response = service.SendTweetWithMedia(new SendTweetWithMediaOptions
{
Status = tweetText,
Images = myDict
});
}
else
{
UpdateStatus("Tweeting without image");
TwitterStatus response = service.SendTweet(new SendTweetOptions
{
Status = tweetText
});
}
#pragma warning restore CS0618
}
private void BackgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
label5.ForeColor = Color.FromArgb(255, 244, 66, 66);
label5.Text = "Status: " + e.Error.Message;
}
else
{
label5.ForeColor = Color.FromArgb(255, 43, 135, 28);
label5.Text = "Status: Tweeted";
}
}
private void UpdateStatus(string text)
{
if (label5.InvokeRequired)
{
BeginInvoke(new Action<string>(UpdateStatus), new object[] { text });
return;
}
label5.Text = "Status: " + text;
}
private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 0)
{
textBox5.Text = Properties.Settings.Default.tConsKey;
}
if (comboBox1.SelectedIndex == 1)
{
textBox5.Text = Properties.Settings.Default.tConsSecret;
}
if (comboBox1.SelectedIndex == 2)
{
textBox5.Text = Properties.Settings.Default.tToken;
}
if (comboBox1.SelectedIndex == 3)
{
textBox5.Text = Properties.Settings.Default.tTokenSecret;
}
}
private void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
textBox5.UseSystemPasswordChar = !checkBox1.Checked;
}
private void TextBox5_TextChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 0)
{
Properties.Settings.Default.tConsKey = textBox5.Text.Replace(" ", string.Empty);
}
if (comboBox1.SelectedIndex == 1)
{
Properties.Settings.Default.tConsSecret = textBox5.Text.Replace(" ", string.Empty);
}
if (comboBox1.SelectedIndex == 2)
{
Properties.Settings.Default.tToken = textBox5.Text.Replace(" ", string.Empty);
}
if (comboBox1.SelectedIndex == 3)
{
Properties.Settings.Default.tTokenSecret = textBox5.Text.Replace(" ", string.Empty);
}
Properties.Settings.Default.Save();
}
}
}

View File

@ -1,239 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
UwXmhiUAAAAASUVORK5CYII=
</value>
</data>
</root>

View File

@ -60,8 +60,6 @@ namespace FModel
this.autoSaveImagesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.mergeImagesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.tweetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.aboutFModelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.panel1 = new System.Windows.Forms.Panel();
@ -171,46 +169,46 @@ namespace FModel
// loadOneToolStripMenuItem
//
this.loadOneToolStripMenuItem.Name = "loadOneToolStripMenuItem";
this.loadOneToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.loadOneToolStripMenuItem.Size = new System.Drawing.Size(175, 22);
this.loadOneToolStripMenuItem.Text = "Load One PAK";
this.loadOneToolStripMenuItem.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.loadOneToolStripMenuItem_DropDownItemClicked);
//
// loadAllToolStripMenuItem
//
this.loadAllToolStripMenuItem.Name = "loadAllToolStripMenuItem";
this.loadAllToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.loadAllToolStripMenuItem.Size = new System.Drawing.Size(175, 22);
this.loadAllToolStripMenuItem.Text = "Load All PAKs";
this.loadAllToolStripMenuItem.Click += new System.EventHandler(this.loadAllToolStripMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator1.Size = new System.Drawing.Size(172, 6);
//
// downloadBackupsToolStripMenuItem
//
this.downloadBackupsToolStripMenuItem.Name = "downloadBackupsToolStripMenuItem";
this.downloadBackupsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.downloadBackupsToolStripMenuItem.Size = new System.Drawing.Size(175, 22);
this.downloadBackupsToolStripMenuItem.Text = "Download Backups";
this.downloadBackupsToolStripMenuItem.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.DownloadBackupsToolStripMenuItem_DropDownItemClicked);
//
// backupPAKsToolStripMenuItem
//
this.backupPAKsToolStripMenuItem.Name = "backupPAKsToolStripMenuItem";
this.backupPAKsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.backupPAKsToolStripMenuItem.Size = new System.Drawing.Size(175, 22);
this.backupPAKsToolStripMenuItem.Text = "Backup PAKs";
this.backupPAKsToolStripMenuItem.Click += new System.EventHandler(this.backupPAKsToolStripMenuItem_Click);
//
// toolStripSeparator8
//
this.toolStripSeparator8.Name = "toolStripSeparator8";
this.toolStripSeparator8.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator8.Size = new System.Drawing.Size(172, 6);
//
// differenceModeToolStripMenuItem
//
this.differenceModeToolStripMenuItem.CheckOnClick = true;
this.differenceModeToolStripMenuItem.Name = "differenceModeToolStripMenuItem";
this.differenceModeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.differenceModeToolStripMenuItem.Size = new System.Drawing.Size(175, 22);
this.differenceModeToolStripMenuItem.Text = "Difference Mode";
this.differenceModeToolStripMenuItem.CheckedChanged += new System.EventHandler(this.differenceModeToolStripMenuItem_CheckedChanged);
//
@ -219,21 +217,21 @@ namespace FModel
this.updateModeToolStripMenuItem.CheckOnClick = true;
this.updateModeToolStripMenuItem.Enabled = false;
this.updateModeToolStripMenuItem.Name = "updateModeToolStripMenuItem";
this.updateModeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.updateModeToolStripMenuItem.Size = new System.Drawing.Size(175, 22);
this.updateModeToolStripMenuItem.Text = "Update Mode";
this.updateModeToolStripMenuItem.CheckedChanged += new System.EventHandler(this.updateModeToolStripMenuItem_CheckedChanged);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator2.Size = new System.Drawing.Size(172, 6);
//
// settingsToolStripMenuItem
//
this.settingsToolStripMenuItem.Image = global::FModel.Properties.Resources.properties_16xLG;
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F1;
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(175, 22);
this.settingsToolStripMenuItem.Text = "Settings";
this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
//
@ -310,9 +308,7 @@ namespace FModel
this.saveImageToolStripMenuItem,
this.autoSaveImagesToolStripMenuItem,
this.toolStripSeparator3,
this.mergeImagesToolStripMenuItem,
this.toolStripSeparator4,
this.tweetToolStripMenuItem});
this.mergeImagesToolStripMenuItem});
this.imageToolStripMenuItem.Name = "imageToolStripMenuItem";
this.imageToolStripMenuItem.Size = new System.Drawing.Size(52, 20);
this.imageToolStripMenuItem.Text = "Image";
@ -343,19 +339,6 @@ namespace FModel
this.mergeImagesToolStripMenuItem.Text = "Merge Images";
this.mergeImagesToolStripMenuItem.Click += new System.EventHandler(this.mergeImagesToolStripMenuItem_Click);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(177, 6);
//
// tweetToolStripMenuItem
//
this.tweetToolStripMenuItem.Name = "tweetToolStripMenuItem";
this.tweetToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F4;
this.tweetToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.tweetToolStripMenuItem.Text = "[BETA] Tweet";
this.tweetToolStripMenuItem.Click += new System.EventHandler(this.TweetToolStripMenuItem_Click);
//
// helpToolStripMenuItem
//
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -368,7 +351,7 @@ namespace FModel
//
this.aboutFModelToolStripMenuItem.Image = global::FModel.Properties.Resources.StatusAnnotations_Information_16xLG_color;
this.aboutFModelToolStripMenuItem.Name = "aboutFModelToolStripMenuItem";
this.aboutFModelToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.aboutFModelToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
this.aboutFModelToolStripMenuItem.Text = "About FModel";
this.aboutFModelToolStripMenuItem.Click += new System.EventHandler(this.aboutFModelToolStripMenuItem_Click);
//
@ -729,8 +712,6 @@ 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;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip2;
private System.Windows.Forms.ToolStripMenuItem extractFolderContentsToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;

View File

@ -1319,18 +1319,6 @@ namespace FModel
else
Application.OpenForms[mergeImagesForm.Name].Focus();
}
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

View File

@ -131,7 +131,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABa
CAAAAk1TRnQBSQFMAgEBAgEAATABAgEwAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAATgBAgE4AQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@ -83,14 +83,11 @@ namespace FModel
}
toDrawOn.FillRectangle(new SolidBrush(headerColor), new Rectangle(-1, -1, myBitmap.Width + 1, 257));
if (Settings.Default.isChallengesTheme)
if (Settings.Default.isChallengesTheme && File.Exists(Settings.Default.challengesBannerFileName))
{
if (File.Exists(Settings.Default.challengesBannerFileName))
{
Image banner = Image.FromFile(Settings.Default.challengesBannerFileName);
var opacityImage = ImageUtilities.SetImageOpacity(banner, (float)Settings.Default.challengesOpacity / 1000);
toDrawOn.DrawImage(ImageUtilities.ResizeImage(opacityImage, 1024, 256), 0, 0);
}
Image banner = Image.FromFile(Settings.Default.challengesBannerFileName);
var opacityImage = ImageUtilities.SetImageOpacity(banner, (float)Settings.Default.challengesOpacity / 1000);
toDrawOn.DrawImage(ImageUtilities.ResizeImage(opacityImage, 1024, 256), 0, 0);
}
else
{
@ -310,21 +307,54 @@ namespace FModel
all = SearchResource.getTextByKey("CompletionRewardFormat_All", "Complete ALL CHALLENGES to earn the reward item", "AthenaChallengeDetailsEntry");
any = SearchResource.getTextByKey("CompletionRewardFormat", "Complete ANY " + count + " CHALLENGES to earn the reward item", "AthenaChallengeDetailsEntry");
//because HtmlAgilityPack fail to detect the end of the tag when it's </>
if (all.Contains("</>")) { all = all.Replace("</>", "</text>"); }
if (any.Contains("</>")) { any = any.Replace("</>", "</text>"); }
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(all);
if (doc.DocumentNode.InnerText.Contains(" {0}")) //avoid white space
{
all = doc.DocumentNode.InnerText.Replace(" {0}", string.Empty);
if (all.Contains("</text>"))
{
all = doc.DocumentNode.InnerText.Replace(doc.DocumentNode.SelectSingleNode("text").InnerText, doc.DocumentNode.SelectSingleNode("text").InnerText.ToUpper());
all = all.Replace(" {0}", string.Empty);
}
else { all = doc.DocumentNode.InnerText.Replace(" {0}", string.Empty); }
}
else
{
if (all.Contains("</text>"))
{
all = doc.DocumentNode.InnerText.Replace(doc.DocumentNode.SelectSingleNode("text").InnerText, doc.DocumentNode.SelectSingleNode("text").InnerText.ToUpper());
all = all.Replace("{0}", string.Empty);
}
else { all = doc.DocumentNode.InnerText.Replace("{0}", string.Empty); }
}
else { all = doc.DocumentNode.InnerText.Replace("{0}", string.Empty); }
doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(any);
if (doc.DocumentNode.InnerText.Contains("{QuestNumber}")) //russian
{
any = doc.DocumentNode.InnerText.Replace("{QuestNumber}", count);
if (any.Contains("</text>"))
{
any = doc.DocumentNode.InnerText.Replace(doc.DocumentNode.SelectSingleNode("text").InnerText, doc.DocumentNode.SelectSingleNode("text").InnerText.ToUpper());
any = any.Replace("{QuestNumber}", count);
}
else { any = doc.DocumentNode.InnerText.Replace("{QuestNumber}", count); }
}
else { any = string.Format(doc.DocumentNode.InnerText, count); }
else
{
if (any.Contains("</text>"))
{
any = doc.DocumentNode.InnerText.Replace(doc.DocumentNode.SelectSingleNode("text").InnerText, doc.DocumentNode.SelectSingleNode("text").InnerText.ToUpper());
any = string.Format(any, count);
}
else { any = string.Format(doc.DocumentNode.InnerText, count); }
}
if (all.Contains(" ")) { all = all.Replace(" ", " "); } //double space in Spanish (LA) i.e. with QuestBundle_PirateParty
if (any.Contains(" ")) { any = any.Replace(" ", " "); }
break;
default:
break;

View File

@ -227,54 +227,6 @@ namespace FModel.Properties {
}
}
[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;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]

View File

@ -53,18 +53,6 @@
<Setting Name="tryToOpenAssets" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="tConsKey" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="tConsSecret" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="tToken" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="tTokenSecret" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UMParameters" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>

View File

@ -67,7 +67,7 @@
- _I'm sure the key is correct but opening the file with this key isn't working_
- First, make sure `C:\Windows\System32\vcruntime140.dll` isn't missing. If it's missing you can download it by installing [Microsoft Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads).
- If it's not missing you can open on issue on GitHub or contact us on Twitter @AsvalFN @MaikyMOficial @iFireMonkey
- If it's not missing you can open on issue on GitHub or contact us on Twitter [@AsvalFN](https://twitter.com/AsvalFN) [@MaikyMOficial](https://twitter.com/MaikyMOficial) [@iFireMonkey](https://twitter.com/iFireMonkey)
- _I can't compile the solution on Visual Studio_
@ -86,7 +86,6 @@ If you find this project useful, feel free to give it a :star: thank you :kissin
2. Icon Creation for various BR/STW Cosmetics or Challenges with language support
3. Icon Merger
4. Automatic Key Detection for Dynamic PAKs
5. Twitter API Authentication to send Tweets from within FModel
### What I'm using
- [Fortnite Asset Parser](https://github.com/SirWaddles/JohnWickParse) - *C# Bind*
- [AutoUpdater.NET](https://github.com/ravibpatel/AutoUpdater.NET)