示例#1
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());
        }
示例#2
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();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());

            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();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
            var json     = JToken.Parse(data);
        }
        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
        }
示例#5
0
        public void EditPage(string page, string content, string previous = null, string reason = null)
        {
            var     request = WebAgent.CreatePost(string.Format(WikiPageEditUrl, Subreddit.Name));
            dynamic param   = new
            {
                content = content,
                page    = page,
                uh      = Reddit.User.Modhash
            };
            List <string> addParams = new List <string>();

            if (previous != null)
            {
                addParams.Add("previous");
                addParams.Add(previous);
            }
            if (reason != null)
            {
                addParams.Add("reason");
                addParams.Add(reason);
            }
            WebAgent.WritePostBody(request.GetRequestStream(), param, addParams.ToArray());
            var response = request.GetResponse();
        }
示例#6
0
        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,
                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 == 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());
        }