protected internal T GetThing <T>(string url) where T : Thing { var request = WebAgent.CreateGet(url); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JToken.Parse(data); return((T)Thing.Parse(this, json, WebAgent)); }
public RedditUser GetUser(string name) { var request = WebAgent.CreateGet(string.Format(UserInfoUrl, name)); var response = request.GetResponse(); var result = WebAgent.GetResponseString(response.GetResponseStream()); var json = JObject.Parse(result); return(new RedditUser().Init(this, json, WebAgent)); }
public Thing GetThingByFullname(string fullname) { var request = WebAgent.CreateGet(string.Format(GetThingUrl, fullname)); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JToken.Parse(data); return(Thing.Parse(this, json["data"]["children"][0], WebAgent)); }
/// <summary> /// Initializes the User property if it's null, /// otherwise replaces the existing user object /// with a new one fetched from reddit servers. /// </summary> public void InitOrUpdateUser() { var request = WebAgent.CreateGet(string.IsNullOrEmpty(WebAgent.AccessToken) ? MeUrl : OAuthMeUrl); var response = (HttpWebResponse)request.GetResponse(); var result = WebAgent.GetResponseString(response.GetResponseStream()); var json = JObject.Parse(result); User = new AuthenticatedUser().Init(this, json, WebAgent); }
public string GetFlairCssClass(string user) { var request = WebAgent.CreateGet(String.Format(FlairListUrl + "?name=" + user, Name)); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JToken.Parse(data); return((string)json["users"][0]["flair_css_class"]); }
public WikiPageSettings GetPageSettings(string name) { var request = WebAgent.CreateGet(string.Format(WikiPageSettingsUrl, Subreddit.Name, name)); var response = request.GetResponse(); var json = JObject.Parse(WebAgent.GetResponseString(response.GetResponseStream())); var result = new WikiPageSettings(Reddit, json["data"], WebAgent); return(result); }
public WikiPage GetPage(string page, string version) { var request = WebAgent.CreateGet(string.Format(GetWikiPageUrl, Subreddit.Name, page, version)); var response = request.GetResponse(); var json = JObject.Parse(WebAgent.GetResponseString(response.GetResponseStream())); var result = new WikiPage(Reddit, json["data"], WebAgent); return(result); }
public SubredditStyle GetStylesheet() { var request = WebAgent.CreateGet(string.Format(StylesheetUrl, Name)); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JToken.Parse(data); return(new SubredditStyle(Reddit, this, json, WebAgent)); }
protected async internal Task <T> GetThingAsync <T>(string url) where T : Thing { var request = WebAgent.CreateGet(url); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JToken.Parse(data); var ret = await Thing.ParseAsync(this, json, WebAgent); return((T)ret); }
public Comment GetComment(Uri uri) { var url = string.Format(GetPostUrl, uri.AbsoluteUri); var request = WebAgent.CreateGet(url); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JToken.Parse(data); var sender = new Post().Init(this, json[0]["data"]["children"][0], WebAgent); return(new Comment().Init(this, json[1]["data"]["children"][0], WebAgent, sender)); }
public JToken GetToken(Uri uri) { var url = uri.AbsoluteUri; if (url.EndsWith("/")) { url = url.Remove(url.Length - 1); } var request = WebAgent.CreateGet(string.Format(GetPostUrl, url)); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JToken.Parse(data); return(json[0]["data"]["children"].First); }
public Comment[] GetComments() { var comments = new List <Comment>(); var request = WebAgent.CreateGet(string.Format(GetCommentsUrl, Id)); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); var json = JArray.Parse(data); var postJson = json.Last()["data"]["children"]; foreach (var comment in postJson) { comments.Add(new Comment(Reddit, comment, WebAgent)); } return(comments.ToArray()); }
public IEnumerable <ModeratorUser> GetModerators() { var request = WebAgent.CreateGet(string.Format(ModeratorsUrl, Name)); var response = request.GetResponse(); var responseString = WebAgent.GetResponseString(response.GetResponseStream()); var json = JObject.Parse(responseString); var type = json["kind"].ToString(); if (type != "UserList") { throw new FormatException("Reddit responded with an object that is not a user listing."); } var data = json["data"]; var mods = data["children"].ToArray(); var result = new ModeratorUser[mods.Length]; for (var i = 0; i < mods.Length; i++) { var mod = new ModeratorUser(Reddit, mods[i]); result[i] = mod; } return(result); }
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)); } }