public GetResponseString ( Stream stream ) : string | ||
stream | Stream | |
return | string |
/// <summary> /// Submits a text post in the current subreddit using the logged-in user /// </summary> /// <param name="title">The title of the submission</param> /// <param name="text">The raw markdown text of the submission</param> public Post SubmitTextPost(string title, string text) { if (Reddit.User == null) { throw new Exception("No user logged in."); } var request = WebAgent.CreatePost(SubmitLinkUrl); WebAgent.WritePostBody(request.GetRequestStream(), new { api_type = "json", kind = "self", sr = Name, text = text, title = title, uh = Reddit.User.Modhash }); var response = request.GetResponse(); var result = WebAgent.GetResponseString(response.GetResponseStream()); var json = JToken.Parse(result); return(new Post(Reddit, json["json"], WebAgent)); // TODO: Error }
public SubredditSettings GetSettings() { if (Reddit.User == null) { throw new AuthenticationException("No user logged in."); } try { var request = WebAgent.CreateGet(string.Format(GetSettingsUrl, Name)); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JObject.Parse(data); return(new SubredditSettings(this, Reddit, json, WebAgent)); } catch // TODO: More specific catch { // Do it unauthed var request = WebAgent.CreateGet(string.Format(GetReducedSettingsUrl, Name)); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JObject.Parse(data); return(new SubredditSettings(this, Reddit, json, WebAgent)); } }
/// <summary> /// Update the subreddit settings. /// </summary> public void UpdateSettings() { var request = WebAgent.CreatePost(SiteAdminUrl); var stream = request.GetRequestStream(); string link_type; string type; string wikimode; switch (ContentOptions) { case ContentOptions.All: link_type = "any"; break; case ContentOptions.LinkOnly: link_type = "link"; break; default: link_type = "self"; break; } switch (SubredditType) { case SubredditType.Public: type = "public"; break; case SubredditType.Private: type = "private"; break; default: type = "restricted"; break; } switch (WikiEditMode) { case WikiEditMode.All: wikimode = "anyone"; break; case WikiEditMode.Moderators: wikimode = "modonly"; break; default: wikimode = "disabled"; break; } WebAgent.WritePostBody(stream, new { allow_top = AllowAsDefault, allow_images = AllowImages, description = Sidebar, domain = Domain, lang = Language, link_type, over_18 = NSFW, public_description = PublicDescription, show_media = ShowThumbnails, sr = Subreddit.FullName, title = Title, type, uh = Reddit.User.Modhash, wiki_edit_age = WikiEditAge, wiki_edit_karma = WikiEditKarma, wikimode, spam_links = SpamFilter?.LinkPostStrength.ToString().ToLowerInvariant(), spam_selfposts = SpamFilter?.SelfPostStrength.ToString().ToLowerInvariant(), spam_comments = SpamFilter?.CommentStrength.ToString().ToLowerInvariant(), api_type = "json" }, "header-title", HeaderHoverText); stream.Close(); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); }
public void UpdateSettings() { var request = WebAgent.CreatePost(SiteAdminUrl); var stream = request.GetRequestStream(); string link_type; string type; string wikimode; string suggested_comment_sort; switch (ContentOptions) { case ContentOptions.All: link_type = "any"; break; case ContentOptions.LinkOnly: link_type = "link"; break; default: link_type = "self"; break; } switch (SubredditType) { case SubredditType.Public: type = "public"; break; case SubredditType.Private: type = "private"; break; case SubredditType.GoldRestricted: type = "gold_restricted"; break; case SubredditType.Archived: type = "archived"; break; case SubredditType.GoldOnly: type = "gold_only"; break; case SubredditType.EmployeesOnly: type = "employees_only"; break; default: type = "restricted"; break; } switch (WikiEditMode) { case WikiEditMode.All: wikimode = "anyone"; break; case WikiEditMode.Moderators: wikimode = "modonly"; break; default: wikimode = "disabled"; break; } switch (SuggestedCommentSort) { case CommentSorts.Confidence: suggested_comment_sort = "confidence"; break; case CommentSorts.Top: suggested_comment_sort = "top"; break; case CommentSorts.New: suggested_comment_sort = "new"; break; case CommentSorts.Controversial: suggested_comment_sort = "controversial"; break; case CommentSorts.Old: suggested_comment_sort = "old"; break; case CommentSorts.Random: suggested_comment_sort = "random"; break; case CommentSorts.Qa: suggested_comment_sort = "qa"; break; default: suggested_comment_sort = string.Empty; break; } WebAgent.WritePostBody(stream, new { allow_top = AllowAsDefault, allow_images = AllowImages, collapse_deleted_comments = CollapseDeletedComments, comment_score_hide_mins = MinutesToHideCommentScores, description = Sidebar, exclude_banned_modqueue = ExcludeBannedModqueue, domain = Domain, hide_ads = HideAds, lang = Language, link_type, over_18 = NSFW, public_description = PublicDescription, public_traffic = IsTrafficPublic, show_media = ShowThumbnails, show_media_preview = ShowMediaPreviews, sr = Subreddit.FullName, submit_link_label = SubmitLinkLabel, submit_text = SubmitText, submit_text_label = SubmitTextLabel, suggested_comment_sort, title = Title, type, uh = Reddit.User.Modhash, wiki_edit_age = WikiEditAge, wiki_edit_karma = WikiEditKarma, wikimode, spam_links = SpamFilter == null ? null : SpamFilter.LinkPostStrength.ToString().ToLowerInvariant(), spam_selfposts = SpamFilter == null ? null : SpamFilter.SelfPostStrength.ToString().ToLowerInvariant(), spam_comments = SpamFilter == null ? null : SpamFilter.CommentStrength.ToString().ToLowerInvariant(), api_type = "json" }, "header-title", HeaderHoverText); stream.Close(); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); }