GetResponseString() public method

public GetResponseString ( Stream stream ) : string
stream Stream
return string
示例#1
0
        /// <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
        }
示例#2
0
 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));
     }
 }
示例#3
0
        /// <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());
        }
示例#4
0
        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());
        }