3 Commits

Author SHA1 Message Date
gardient
caf45e57ca Updates license 2016-11-10 14:04:47 +02:00
gardient
f28ec5216f Update README.md 2015-09-02 21:54:25 +03:00
gardient
4ce42d18eb Added Random number range 2015-09-02 21:33:03 +03:00
7 changed files with 118 additions and 71 deletions

29
LICENSE
View File

@@ -1,16 +1,21 @@
Copyright (c) 2013 Drew DeVault
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
Copyright (c) 2016 gardient
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -24,7 +24,7 @@ press the button [Give Me A Random Winner] and the following will happen:
## Features to come
- Change to new random.org API (yes this uses the old one)
- Add minimum value to random number
- ~~Add minimum value to random number~~(Done!)
- Add better defined matching if number with which to enter the lottery
- Number has to be right at the beginning of the comment
- Dropdown with more options

View File

@@ -11,7 +11,7 @@
<applicationSettings>
<RedditRandomNumberGiveawayHelper.Properties.Settings>
<setting name="Version" serializeAs="String">
<value>V0.2.0</value>
<value>V0.3.0</value>
</setting>
</RedditRandomNumberGiveawayHelper.Properties.Settings>
</applicationSettings>

View File

@@ -37,30 +37,32 @@
this.label3 = new System.Windows.Forms.Label();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.checkForUpdatesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.randomMin = new System.Windows.Forms.NumericUpDown();
((System.ComponentModel.ISupportInitialize)(this.randomMax)).BeginInit();
this.menuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.randomMin)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(11, 41);
this.label1.Location = new System.Drawing.Point(33, 41);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(100, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Giveaway Post URI";
this.label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(117, 38);
this.textBox1.Location = new System.Drawing.Point(139, 38);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(463, 20);
this.textBox1.Size = new System.Drawing.Size(441, 20);
this.textBox1.TabIndex = 1;
//
// randomMax
//
this.randomMax.Location = new System.Drawing.Point(117, 65);
this.randomMax.Location = new System.Drawing.Point(220, 64);
this.randomMax.Maximum = new decimal(new int[] {
100000,
0,
@@ -72,7 +74,7 @@
0,
0});
this.randomMax.Name = "randomMax";
this.randomMax.Size = new System.Drawing.Size(115, 20);
this.randomMax.Size = new System.Drawing.Size(75, 20);
this.randomMax.TabIndex = 2;
this.randomMax.Value = new decimal(new int[] {
5000,
@@ -85,15 +87,16 @@
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(11, 67);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(57, 13);
this.label2.Size = new System.Drawing.Size(122, 13);
this.label2.TabIndex = 3;
this.label2.Text = "Max Value";
this.label2.Text = "Random Number Range";
this.label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// button1
//
this.button1.Location = new System.Drawing.Point(238, 64);
this.button1.Location = new System.Drawing.Point(301, 64);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(342, 23);
this.button1.Size = new System.Drawing.Size(279, 23);
this.button1.TabIndex = 4;
this.button1.Text = "Get Me A Random Winner";
this.button1.UseVisualStyleBackColor = true;
@@ -105,7 +108,8 @@
this.textBox2.Multiline = true;
this.textBox2.Name = "textBox2";
this.textBox2.ReadOnly = true;
this.textBox2.Size = new System.Drawing.Size(568, 140);
this.textBox2.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.textBox2.Size = new System.Drawing.Size(568, 171);
this.textBox2.TabIndex = 5;
//
// label3
@@ -129,24 +133,39 @@
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.checkForUpdatesToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "File";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(115, 20);
this.fileToolStripMenuItem.Text = "Check for updates";
this.fileToolStripMenuItem.Click += new System.EventHandler(this.checkForUpdatesToolStripMenuItem_Click);
//
// checkForUpdatesToolStripMenuItem
// randomMin
//
this.checkForUpdatesToolStripMenuItem.Name = "checkForUpdatesToolStripMenuItem";
this.checkForUpdatesToolStripMenuItem.Size = new System.Drawing.Size(170, 22);
this.checkForUpdatesToolStripMenuItem.Text = "Check for updates";
this.checkForUpdatesToolStripMenuItem.Click += new System.EventHandler(this.checkForUpdatesToolStripMenuItem_Click);
this.randomMin.Location = new System.Drawing.Point(139, 64);
this.randomMin.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.randomMin.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.randomMin.Name = "randomMin";
this.randomMin.Size = new System.Drawing.Size(75, 20);
this.randomMin.TabIndex = 8;
this.randomMin.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(593, 273);
this.ClientSize = new System.Drawing.Size(593, 304);
this.Controls.Add(this.randomMin);
this.Controls.Add(this.label3);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.button1);
@@ -162,6 +181,7 @@
((System.ComponentModel.ISupportInitialize)(this.randomMax)).EndInit();
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.randomMin)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -178,7 +198,7 @@
private System.Windows.Forms.Label label3;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem checkForUpdatesToolStripMenuItem;
private System.Windows.Forms.NumericUpDown randomMin;
}
}

View File

@@ -19,17 +19,40 @@ namespace RedditRandomNumberGiveawayHelper
public partial class MainForm : Form
{
//make sure to format with max number
private static string RANDOM_ORG_URI = "https://www.random.org/integers/?num=1&min=1&max={0}&col=1&base=10&format=plain&rnd=new";
private static string RANDOM_ORG_URI = "https://www.random.org/integers/?num=1&min={0}&max={1}&col=1&base=10&format=plain&rnd=new";
public MainForm()
{
InitializeComponent();
}
class DisplayTextbox
{
private TextBox txtBx;
public DisplayTextbox(TextBox x)
{
txtBx = x;
}
public void Write(params object[] strings)
{
txtBx.Text += string.Join(Environment.NewLine, strings) + Environment.NewLine;
}
public void Clear()
{
txtBx.Clear();
}
}
private void button1_Click(object sender, EventArgs e)
{
//textBox2.Text += string.Format("{0}", Environment.NewLine);
DisplayTextbox displayTextBox = new DisplayTextbox(textBox2);
displayTextBox.Clear();
var reddit = new Reddit();
Post giveawayPost = null;
int? randomNumber = null;
@@ -37,31 +60,26 @@ namespace RedditRandomNumberGiveawayHelper
try
{
textBox2.Text += string.Format("Getting giveaway post...{0}", Environment.NewLine);
displayTextBox.Write("Getting giveaway post...");
giveawayPost = reddit.GetPost(new Uri(textBox1.Text));
}
catch (Exception ex)
{
textBox2.Text += string.Format("{1}{0}{2}{0}",
Environment.NewLine,
"Failed getting giveaway post",
displayTextBox.Write("Failed getting giveaway post",
"You sure that's the right URI (alsomake sure to get the full uri from the address bar)");
return;
}
textBox2.Text += string.Format("{1}{2}{0}{3}{4}{0}",
Environment.NewLine,
"Post title: ",
displayTextBox.Write("Post title: ",
giveawayPost.Title,
"Comment count: ",
giveawayPost.CommentCount);
try
{
textBox2.Text += string.Format("{1}{0}",
Environment.NewLine,
"Getting random number from random.org...");
WebRequest randomDotOrgRequest = WebRequest.Create(string.Format(RANDOM_ORG_URI, decimal.Round(randomMax.Value, 0)));
displayTextBox.Write("Getting random number from random.org...");
WebRequest randomDotOrgRequest = WebRequest.Create(string.Format(RANDOM_ORG_URI, decimal.Round(randomMin.Value, 0), decimal.Round(randomMax.Value, 0)));
using (WebResponse resp = randomDotOrgRequest.GetResponse())
{
using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
@@ -72,16 +90,11 @@ namespace RedditRandomNumberGiveawayHelper
}
catch (Exception ex)
{
textBox2.Text += string.Format("{1}{0}{2}{0}",
Environment.NewLine,
"Failed getting giveaway post",
ex);
displayTextBox.Write("Failed getting giveaway post", ex);
return;
}
textBox2.Text += string.Format("{1}{2}{0}{3}{4}{0}",
Environment.NewLine,
"Random Number: ",
displayTextBox.Write("Random Number: ",
randomNumber,
"Getting winning comment...",
"This might take a while...");
@@ -96,29 +109,38 @@ namespace RedditRandomNumberGiveawayHelper
foreach (var x in nums)
{
if ((x.Value == randomNumber + i && randomNumber + i < decimal.Round(randomMax.Value, 0))
|| (x.Value == randomNumber - i && randomNumber - i > 0))
|| (x.Value == randomNumber - i && randomNumber - i > decimal.Round(randomMin.Value, 0)))
{
winningNumKey = x.Key;
winningNumVal = x.Value;
diff = i;
break;
}
//stop if we're out of range
if (randomNumber + i > decimal.Round(randomMax.Value, 0) && randomNumber - i < decimal.Round(randomMin.Value, 0))
break;
}
}
Comment winningComment = giveawayPost.Comments.FirstOrDefault(w => w.Shortlink == winningNumKey);
if (!string.IsNullOrEmpty(winningNumKey) && winningNumVal.HasValue)
{
Comment winningComment = giveawayPost.Comments.FirstOrDefault(w => w.Shortlink == winningNumKey);
textBox2.Text += string.Format("{1}{2}{0}{3}{4}{0}{5}{6}{0}{7}{8}{0}",
Environment.NewLine,
"Winning comment (link): ",
winningNumKey,
"Winning comment (body): ",
winningComment.Body,
"Winning comment (commenter): ",
winningComment.Author,
"Diff: ",
diff
);
displayTextBox.Write("Winning comment (link): ",
winningNumKey,
"Winning comment (body): ",
winningComment.Body,
"Winning comment (commenter): ",
winningComment.Author,
"Diff: ",
diff
);
}
else
{
displayTextBox.Write("What the heck?? not one post in the range? you sure you have that range right?");
}
}
private async void checkForUpdatesToolStripMenuItem_Click(object sender, EventArgs e)

View File

@@ -25,7 +25,7 @@ namespace RedditRandomNumberGiveawayHelper.Properties {
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("V0.2.0")]
[global::System.Configuration.DefaultSettingValueAttribute("V0.3.0")]
public string Version {
get {
return ((string)(this["Version"]));

View File

@@ -3,7 +3,7 @@
<Profiles />
<Settings>
<Setting Name="Version" Type="System.String" Scope="Application">
<Value Profile="(Default)">V0.2.0</Value>
<Value Profile="(Default)">V0.3.0</Value>
</Setting>
</Settings>
</SettingsFile>