public CreatePost ( string url ) : |
||
url | string | |
return |
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()); }
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()); }
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(); }
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(); }
/// <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()); }
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()); }
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); }
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); }
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); }
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()); }
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()); }
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); }
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); }
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); }
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); }
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; }
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; }
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); }
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); }
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); }
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); }
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); }
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()); }
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."); } }
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 }
/// <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 }
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)); }