Exemple #1
0
        public static void PostBallot(Ballot ballot)
        {
            var motion = ballot.Motion;
             if (motion.PostUrl == "")
             {
            return;
             }

             var reddit = new RedditSharp.Reddit(Config.RedditUser, Config.RedditPass, true);
             var post = reddit.GetPost(new Uri(motion.PostUrl));
             post.Comment("###" + ballot.Moderator.Name + "###" + Environment.NewLine
            + "*****" + Environment.NewLine
            + DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss") + @" \(UTC\) : *" + ballot.Choice.ToString() + "*" + Environment.NewLine
            );
        }
Exemple #2
0
        public static void PostBallot(Ballot ballot)
        {
            var motion = ballot.Motion;

            if (motion.PostUrl == "")
            {
                return;
            }


            var reddit = new RedditSharp.Reddit(Config.RedditUser, Config.RedditPass, true);
            var post   = reddit.GetPost(new Uri(motion.PostUrl));

            post.Comment("###" + ballot.Moderator.Name + "###" + Environment.NewLine
                         + "*****" + Environment.NewLine
                         + DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss") + @" \(UTC\) : *" + ballot.Choice.ToString() + "*" + Environment.NewLine
                         );
        }
        static void Main(string[] args)
        {
            Console.BufferWidth = 100;//Make console wider for better reading
            Console.SetWindowSize(Console.LargestWindowWidth / 2, Console.LargestWindowHeight / 2);
            Reddit reddit = new Reddit();
            while (reddit.User == null)//Keep trying to login until it works
            {
                Console.Write("Username: "******"Password: "******"Logging in...");
                    reddit.LogIn(username, password);
                }
                catch (AuthenticationException)
                {
                    Console.WriteLine("Incorrect login.");
                }
            }
            Console.WriteLine("Logged in.");

            Post p = reddit.GetPost("http://www.reddit.com/r/AskReddit/comments/1m15pa/teachers_of_reddit_what_is_the_funniest_thing/");//Put your post url (with http://) here
            Comment[] comments = p.GetComments();

            Console.WriteLine("Got post comments");

            string output = string.Empty;

            int i = 0;
            foreach (Comment c in comments)
            {
                try
                {
                    string text = c.Body;//Take the text of the string from the comment

                    if (!ContainsBlackListedWords(text))//Make sure the comment isn't a witty one liner (rudimentary)
                    {

                        string[] sentences = text.Split('.');//Split the comment into each setence

                        string sentence = sentences[i.MaxAt(sentences.Length-1)] + ".";//Take a sentence out of the sentence array
                        if (sentence.Length > 2 )//Check if it is a good sentence
                        {
                            sentence.Trim();//Trim spaces from both sides of the sentence.

                            Regex whitespaceremoval = new Regex(@"\s\s+");

                            sentence = whitespaceremoval.Replace(sentence, "");//Apply regex to remove excess spacing inside the sentence (readability)

                            //Regex alphanum = new Regex("[^a-zA-Z0-9. ,-]");

                            //sentence = alphanum.Replace(sentence, "");//Remove crazy symbol using regex (readability)

                            output += sentence;//Add the sentence to the output string

                            i++;//Increment i to continue the paragraph

                            Console.WriteLine("Parsed comment:" + i);//Log success
                        }
                    }
                    else
                    {
                        Console.WriteLine("Failed to parse comment : Comment contained blacklisted word");
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Failed to parse comment :" + e.Message);//Error catching for that damn null comment at the end of every post
                }
            }
            Console.WriteLine();//Add spacing
            Console.WriteLine();//""

            Console.Write(output);

            File.WriteAllText("out" + DateTime.Now.Ticks.ToString() + ".txt", output);

            Console.ReadKey();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            DisplayTextbox displayTextBox = new DisplayTextbox(textBox2);

            displayTextBox.Clear();
            var reddit = new Reddit();

            Post giveawayPost = null;
            int? randomNumber = null;

            Regex numberPost = new Regex(@"(\d{1,6})");

            try
            {
                displayTextBox.Write("Getting giveaway post...");
                giveawayPost = reddit.GetPost(new Uri(textBox1.Text));
            }
            catch (Exception ex)
            {
                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;
            }

            displayTextBox.Write("Post title: ",
                giveawayPost.Title,
                "Comment count: ",
                giveawayPost.CommentCount);

            try
            {
                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()))
                    {
                        randomNumber = int.Parse(sr.ReadToEnd());
                    }
                }
            }
            catch (Exception ex)
            {
                displayTextBox.Write("Failed getting giveaway post", ex);
                return;
            }

            displayTextBox.Write("Random Number: ",
                randomNumber,
                "Getting winning comment...",
                "This might take a while...");

            Dictionary<string, int> nums = giveawayPost.Comments.Where(c => c.Body != null && numberPost.IsMatch(c.Body)).ToDictionary(k => k.Shortlink, elementSelector: x => int.Parse(numberPost.Match(x.Body).Captures[0].Value));
            string winningNumKey = null;
            int? winningNumVal = null;
            int? diff = null;

            for (int i = 0; (winningNumKey == null && winningNumVal == null) && (randomNumber + i < decimal.Round(randomMax.Value, 0) || randomNumber - i > 0); i++)
            {
                foreach (var x in nums)
                {
                    if ((x.Value == randomNumber + i && randomNumber + i < decimal.Round(randomMax.Value, 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;
                }
            }

            if (!string.IsNullOrEmpty(winningNumKey) && winningNumVal.HasValue)
            {
                Comment winningComment = giveawayPost.Comments.FirstOrDefault(w => w.Shortlink == winningNumKey);

                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?");
            }
        }