CreatePost() public method

public CreatePost ( string url ) : HttpWebRequest
url string
return System.Net.HttpWebRequest
Ejemplo n.º 1
0
        public void AcceptModeratorInvite()
        {
            var request = WebAgent.CreatePost(AcceptModeratorInviteUrl);

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                api_type = "json",
                uh       = Reddit.User.Modhash,
                r        = Name
            });
            var response = request.GetResponse();
            var result   = WebAgent.GetResponseString(response.GetResponseStream());
        }
Ejemplo n.º 2
0
        public void SetAsRead()
        {
            var request = WebAgent.CreatePost(SetAsReadUrl);

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                id       = FullName,
                uh       = Reddit.User.Modhash,
                api_type = "json"
            });
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
        }
Ejemplo n.º 3
0
        public void Approve()
        {
            var request = WebAgent.CreatePost(ApproveUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                id = FullName,
                uh = Reddit.User.Modhash
            });
            stream.Close();
            WebAgent.ExecuteRequest(request);
        }
        public void SetPageSettings(string name, WikiPageSettings settings)
        {
            var request = WebAgent.CreatePost(string.Format(WikiPageSettingsUrl, Subreddit.Name, name));

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                page      = name,
                permlevel = settings.PermLevel,
                listed    = settings.Listed,
                uh        = Reddit.User.Modhash
            });
            var response = request.GetResponse();
        }
Ejemplo n.º 5
0
        public void EditPage(string page, string content, string previous = null, string reason = null)
        {
            var request = WebAgent.CreatePost(string.Format(WikiPageEditUrl, Subreddit.Name));

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                content  = content,
                previous = previous,
                reason   = reason,
                page     = page,
                uh       = Reddit.User.Modhash
            });
            var response = request.GetResponse();
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Resets the subreddit's header image to the Reddit logo
        /// </summary>
        public void ResetHeaderImage()
        {
            var request = WebAgent.CreatePost(DeleteHeaderImageUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                uh = Reddit.User.Modhash,
                r  = Subreddit.Name
            });
            stream.Close();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
        }
Ejemplo n.º 7
0
        public void Approve()
        {
            var request = WebAgent.CreatePost(ApproveUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                id = FullName,
                uh = Reddit.User.Modhash
            });
            stream.Close();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
        }
Ejemplo n.º 8
0
        public void RemoveModerator(string id)
        {
            var request = WebAgent.CreatePost(LeaveModerationUrl);

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                api_type = "json",
                uh       = Reddit.User.Modhash,
                r        = Name,
                type     = "moderator",
                id
            });
            WebAgent.ExecuteRequest(request);
        }
Ejemplo n.º 9
0
        public void AddContributor(string user)
        {
            var request = WebAgent.CreatePost(AddContributorUrl);

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                api_type = "json",
                uh       = Reddit.User.Modhash,
                r        = Name,
                type     = "contributor",
                name     = user
            });
            WebAgent.ExecuteRequest(request);
        }
Ejemplo n.º 10
0
        public void ClearFlairTemplates(FlairType flairType)
        {
            var request = WebAgent.CreatePost(ClearFlairTemplatesUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                flair_type = flairType == FlairType.Link ? "LINK_FLAIR" : "USER_FLAIR",
                uh         = Reddit.User.Modhash,
                r          = Name
            });
            stream.Close();
            WebAgent.ExecuteRequest(request);
        }
Ejemplo n.º 11
0
        public void AddModerator(string user)
        {
            var request = WebAgent.CreatePost(AddModeratorUrl);

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                api_type = "json",
                uh       = Reddit.User.Modhash,
                r        = Name,
                type     = "moderator",
                name     = user
            });
            var response = request.GetResponse();
            var result   = WebAgent.GetResponseString(response.GetResponseStream());
        }
Ejemplo n.º 12
0
        public void RemoveContributor(string id)
        {
            var request = WebAgent.CreatePost(LeaveModerationUrl);

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                api_type = "json",
                uh       = Reddit.User.Modhash,
                r        = Name,
                type     = "contributor",
                id
            });
            var response = request.GetResponse();
            var result   = WebAgent.GetResponseString(response.GetResponseStream());
        }
Ejemplo n.º 13
0
        public void Delete()
        {
            var request = WebAgent.CreatePost(DeleteImageUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                img_name = Name,
                uh       = Reddit.User.Modhash,
                r        = SubredditStyle.Subreddit.Name
            });
            stream.Close();
            WebAgent.ExecuteRequest(request);
            SubredditStyle.Images.Remove(this);
        }
Ejemplo n.º 14
0
        public void UpdateCss()
        {
            var request = WebAgent.CreatePost(UpdateCssUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                op = "save",
                stylesheet_contents = CSS,
                uh       = Reddit.User.Modhash,
                api_type = "json",
                r        = Subreddit.Name
            });
            stream.Close();
            WebAgent.ExecuteRequest(request);
        }
Ejemplo n.º 15
0
        public void SetUserFlair(string user, string cssClass, string text)
        {
            var request = WebAgent.CreatePost(SetUserFlairUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                css_class = cssClass,
                text      = text,
                uh        = Reddit.User.Modhash,
                r         = Name,
                name      = user
            });
            stream.Close();
            WebAgent.ExecuteRequest(request);
        }
Ejemplo n.º 16
0
        public void Unhide()
        {
            if (Reddit.User == null)
            {
                throw new AuthenticationException("No user logged in.");
            }
            var request = WebAgent.CreatePost(UnhideUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                id = FullName,
                uh = Reddit.User.Modhash
            });
            stream.Close();
            WebAgent.ExecuteRequest(request);
        }
Ejemplo n.º 17
0
        public void Downvote()
        {
            var request = WebAgent.CreatePost(VoteUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                dir = -1,
                id  = FullName,
                uh  = Reddit.User.Modhash
            });
            stream.Close();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());

            Liked = false;
        }
Ejemplo n.º 18
0
        public void Vote(VoteType type)
        {
            var request = WebAgent.CreatePost(VoteUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                dir = (int)type,
                id  = FullName,
                uh  = Reddit.User.Modhash
            });
            stream.Close();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());

            Liked = null;
        }
Ejemplo n.º 19
0
        public async Task DeleteAsync()
        {
            var request = WebAgent.CreatePost(DeleteImageUrl);
            var stream  = await request.GetRequestStreamAsync();

            WebAgent.WritePostBody(stream, new
            {
                img_name = Name,
                uh       = Reddit.User.Modhash,
                r        = SubredditStyle.Subreddit.Name
            });
            stream.Close();
            var response = await request.GetResponseAsync();

            var data = WebAgent.GetResponseString(response.GetResponseStream());

            SubredditStyle.Images.Remove(this);
        }
Ejemplo n.º 20
0
        public void BanUser(string user, string reason)
        {
            var request = WebAgent.CreatePost(BanUserUrl);

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                api_type  = "json",
                uh        = Reddit.User.Modhash,
                r         = Name,
                type      = "banned",
                id        = "#banned",
                name      = user,
                note      = reason,
                action    = "add",
                container = FullName
            });
            WebAgent.ExecuteRequest(request);
        }
Ejemplo n.º 21
0
        public void AddFlairTemplate(string cssClass, FlairType flairType, string text, bool userEditable)
        {
            var request = WebAgent.CreatePost(FlairTemplateUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                css_class     = cssClass,
                flair_type    = flairType == FlairType.Link ? "LINK_FLAIR" : "USER_FLAIR",
                text          = text,
                text_editable = userEditable,
                uh            = Reddit.User.Modhash,
                r             = Name,
                api_type      = "json"
            });
            stream.Close();
            var json = WebAgent.ExecuteRequest(request);
        }
Ejemplo n.º 22
0
        public void UploadImage(string name, ImageType imageType, byte[] file)
        {
            var request  = WebAgent.CreatePost(UploadImageUrl);
            var formData = new MultipartFormBuilder(request);

            formData.AddDynamic(new
            {
                name,
                uh       = Reddit.User.Modhash,
                r        = Subreddit.Name,
                formid   = "image-upload",
                img_type = imageType == ImageType.PNG ? "png" : "jpg",
                upload   = ""
            });
            formData.AddFile("file", "foo.png", file, imageType == ImageType.PNG ? "image/png" : "image/jpeg");
            formData.Finish();
            WebAgent.ExecuteRequest(request);
        }
        public void UpdateCss()
        {
            var request = WebAgent.CreatePost(UpdateCssUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                op = "save",
                stylesheet_contents = CSS,
                uh       = Reddit.User.Modhash,
                api_type = "json",
                r        = Subreddit.Name
            });
            stream.Close();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(data);
        }
Ejemplo n.º 24
0
        public void Reply(string message)
        {
            if (Reddit.User == null)
            {
                throw new AuthenticationException("No user logged in.");
            }
            var request = WebAgent.CreatePost(CommentUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                text     = message,
                thing_id = FullName,
                uh       = Reddit.User.Modhash
            });
            stream.Close();
            WebAgent.ExecuteRequest(request);
        }
Ejemplo n.º 25
0
        public void Hide()
        {
            if (Reddit.User == null)
            {
                throw new AuthenticationException("No user logged in.");
            }
            var request = WebAgent.CreatePost(HideUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                id = FullName,
                uh = Reddit.User.Modhash
            });
            stream.Close();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
        }
Ejemplo n.º 26
0
        public void Distinguish(DistinguishType distinguishType)
        {
            if (Reddit.User == null)
            {
                throw new AuthenticationException("No user logged in.");
            }
            var    request = WebAgent.CreatePost(DistinguishUrl);
            var    stream  = request.GetRequestStream();
            string how;

            switch (distinguishType)
            {
            case DistinguishType.Admin:
                how = "admin";
                break;

            case DistinguishType.Moderator:
                how = "yes";
                break;

            case DistinguishType.None:
                how = "no";
                break;

            default:
                how = "special";
                break;
            }
            WebAgent.WritePostBody(stream, new
            {
                how,
                id = Id,
                uh = Reddit.User.Modhash
            });
            stream.Close();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JObject.Parse(data);

            if (json["jquery"].Count(i => i[0].Value <int>() == 11 && i[1].Value <int>() == 12) == 0)
            {
                throw new AuthenticationException("You are not permitted to distinguish this comment.");
            }
        }
Ejemplo n.º 27
0
        public void Unsubscribe()
        {
            if (Reddit.User == null)
            {
                throw new AuthenticationException("No user logged in.");
            }
            var request = WebAgent.CreatePost(SubscribeUrl);
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                action = "unsub",
                sr     = FullName,
                uh     = Reddit.User.Modhash
            });
            stream.Close();
            WebAgent.ExecuteRequest(request);
            // Discard results
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Registers a new Reddit user
        /// </summary>
        /// <param name="userName">The username for the new account.</param>
        /// <param name="passwd">The password for the new account.</param>
        /// <param name="email">The optional recovery email for the new account.</param>
        /// <returns>The newly created user account</returns>
        public AuthenticatedUser RegisterAccount(string userName, string passwd, string email = "")
        {
            var request = WebAgent.CreatePost(RegisterAccountUrl);

            WebAgent.WritePostBody(request.GetRequestStream(), new
            {
                api_type = "json",
                email    = email,
                passwd   = passwd,
                passwd2  = passwd,
                user     = userName
            });
            var response = request.GetResponse();
            var result   = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JObject.Parse(result);

            return(new AuthenticatedUser().Init(this, json, WebAgent));
            // TODO: Error
        }
        public void UploadImage(string name, ImageType imageType, byte[] file)
        {
            var request  = WebAgent.CreatePost(UploadImageUrl);
            var formData = new MultipartFormBuilder(request);

            formData.AddDynamic(new
            {
                name,
                uh       = Reddit.User.Modhash,
                r        = Subreddit.Name,
                formid   = "image-upload",
                img_type = imageType == ImageType.PNG ? "png" : "jpg",
                upload   = ""
            });
            formData.AddFile("file", "foo.png", file, imageType == ImageType.PNG ? "image/png" : "image/jpeg");
            formData.Finish();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            // TODO: Detect errors
        }
Ejemplo n.º 30
0
        private Post Submit(SubmitData data)
        {
            if (Reddit.User == null)
            {
                throw new RedditException("No user logged in.");
            }
            var request = WebAgent.CreatePost(SubmitLinkUrl);

            WebAgent.WritePostBody(request.GetRequestStream(), data);

            var response = request.GetResponse();
            var result   = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(result);

            ICaptchaSolver solver = Reddit.CaptchaSolver;

            if (json["json"]["errors"].Any() && json["json"]["errors"][0][0].ToString() == "BAD_CAPTCHA" &&
                solver != null)
            {
                data.Iden = json["json"]["captcha"].ToString();
                CaptchaResponse captchaResponse = solver.HandleCaptcha(new Captcha(data.Iden));

                // We throw exception due to this method being expected to return a valid Post object, but we cannot
                // if we got a Captcha error.
                if (captchaResponse.Cancel)
                {
                    throw new CaptchaFailedException("Captcha verification failed when submitting " + data.Kind + " post");
                }

                data.Captcha = captchaResponse.Answer;
                return(Submit(data));
            }
            else if (json["json"]["errors"].Any() && json["json"]["errors"][0][0].ToString() == "ALREADY_SUB")
            {
                throw new DuplicateLinkException(String.Format("Post failed when submitting.  The following link has already been submitted: {0}", SubmitLinkUrl));
            }

            return(new Post(Reddit, json["json"], WebAgent));
        }