/// <summary> /// /// </summary> /// <param name="session"></param> /// <param name="sub"></param> /// <see cref="https://github.com/reddit/reddit/wiki/API%3A-flairlist"/> /// <returns></returns> public static FlairListing GetFlair(Session session, string sub, string after, string before) { // var url = "http://www.reddit.com/api/flairlist?r=" + sub + "&limit=1000&uh=" + session.ModHash; var url = "http://www.reddit.com/r/" + sub + "/api/flairlist.json?uh=" + session.ModHash + "&limit=1000"; if (!string.IsNullOrEmpty(after)) url += "&after=" + after; if (!string.IsNullOrEmpty(before)) url += "&before=" + before; var request = new Request { Url = url, Method = "GET", Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new RedditException(json); var o = JObject.Parse(json); // convert to a post listing var list = FlairListing.FromJson(o["users"]); list.Next = o["next"] == null ? string.Empty : o["next"].ToString(); list.Prev = o["prev"] == null ? string.Empty : o["prev"].ToString(); return list; }
/// <summary> /// /// </summary> /// <param name="session"></param> /// <param name="id"></param> /// <see cref="https://github.com/reddit/reddit/wiki/API:-report"/> internal static void Report(Session session, string id, string modhash) { // POST // id = post thing id // uh = modhash }
public static PostListing Query(Session session, string qry, string after, string before) { var request = new Request { Url = "http://www.reddit.com/search.json?q=" + qry, Method = "GET", Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new RedditException(json); var o = JObject.Parse(json); return PostListing.FromJson(o); }
public static PostListing GetPosts(Session session) { var request = new Request { Url = "http://www.reddit.com/r/friends/.json", Method = "GET", Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new RedditException(json); var o = JObject.Parse(json); return PostListing.FromJson(o); }
// List submissions from friends /// http://www.reddit.com/r/friends/.json /// public static UserListing List(Session session) { var request = new Request { Url = "https://ssl.reddit.com/prefs/friends.json", Method = "GET", Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new Exception(json); var o = JObject.Parse(json); var list = UserListing.FromJson(o); return list; }
internal static void UnHide(Session session, string id, string modhash) { var request = new Request { Url = "http://www.reddit.com/api/unhide", Method = "POST", Content = "uh=" + modhash + "&id=" + id, Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new Exception(json); if (json != "{}") throw new Exception(json); }
/// <summary> /// Get information about a URL or domain, find all the stories and comments /// associated within. /// </summary> /// <param name="session"></param> /// <param name="url"></param> /// <returns></returns> public static PostListing FromUrl(Session session, string url) { // build the request var request = new Request { Url = "http://www.reddit.com/api/info.json?url=" + url, Method = "GET", Cookie = session.Cookie }; // execute the request var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new Exception(json); // convert to a post listing var o = JObject.Parse(json); return PostListing.FromJson(o); }
public static void Add(Session session, string username, string id, string modhash) { id = id.StartsWith("t2_") ? id : "t2_" + id; var request = new Request { Url = "http://www.reddit.com/api/friend?note=", Method = "POST", Cookie = session.Cookie, Content = "name=" + username + "&container=" + id + "&type=friend" + "&uh=" + modhash + "&renderstyle=html" }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new RedditException(json); var o = JObject.Parse(json); // o["jquery"][20][3][0].ToString() }
/// <summary> /// /// </summary> /// <param name="session"></param> /// <param name="sub"></param> /// <param name="after"></param> /// <param name="before"></param> /// <returns></returns> public static SubListing List(Session session, string after = "", string before = "") { var request = new Request { Url = "http://www.reddit.com/reddits/.json", Method = "GET", Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new RedditException(json); var o = JObject.Parse(json); return SubListing.FromJson(o); }
public static void VoteUp(Session session, string id, string modhash) { Thing.VoteUp(session, id, modhash); }
public static PostListing Query(Session session, string qry, string after) { return Query(session, qry, after, string.Empty); }
private static void Vote(Session session, string id, string modhash, int direction) { var request = new Request { Url = "http://www.reddit.com/api/vote", Method = "POST", Content = "uh=" + modhash + "&id=" + id + "&dir=" + direction.ToString(), Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new Exception(json); if (json != "{}") throw new Exception(json); }
public static void Read(Session session, params string[] id) { var request = new Request { Url = "http://www.reddit.com/api/read_message", Method = "POST", Cookie = session.Cookie, Content = "id=" + string.Join(",", id) + "&uh=" + session.ModHash }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new RedditException(json); var o = JObject.Parse(json); }
public static void BanUser(Session session, string sub, string sub_id, string username, string modhash) { var request = new Request { Url = "http://www.reddit.com/api/friend", Method = "POST", Cookie = session.Cookie, Content = "action=add" + "&container=" + sub_id + "&type=banned" + "&name=" + username + "&id=#banned" + "&r=" + sub + "&uh=" + modhash + "&renderstyle=html" }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new RedditException(json); var o = JObject.Parse(json); }
internal static void VoteNull(Session session, string id, string modhash) { Vote(session, id, modhash, 0); }
public static PostListing GetRelated(Session session, string id) { // Make sure we process the request with the type removed, so // we just pass the base-36 ID id = id.Replace("t3_", string.Empty); // build a request var request = new Request { Url = "http://www.reddit.com/related/" + id + ".json", Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new Exception(json); return JsonConvert.DeserializeObject<PostListing>(json); }
/// <summary> /// https://github.com/reddit/reddit/wiki/API:-hide /// </summary> /// <param name="session"></param> /// <param name="id"></param> public static void Hide(Session session, string id, string modhash) { // http://www.reddit.com/api/hide Thing.Hide(session, id, modhash); }
public static PostListing Get(Session session, string id) { // check this is a link (in the correct format) if (!id.StartsWith("t3_")) throw new RedditException("ID is not of a link/post"); // build a request var request = new Request { Url = "http://www.reddit.com/by_id/" + id + ".json", Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new RedditException(json); return JsonConvert.DeserializeObject<PostListing>(json); }
public static MessageListing Unread(Session session) { // var request = new Request { Method = "GET", Cookie = session.Cookie, Url = "http://www.reddit.com/message/unread/.json" }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new Exception(json); var o = JObject.Parse(json); return MessageListing.FromJson(o); }
public static void Send(Session session, Message message, string iden, string captcha) { var request = new Request { Url = "http://www.reddit.com/api/compose", Method = "POST", Cookie = session.Cookie, Content = "uh=" + session.ModHash + "&to=" + message.Destination + "&subject=" + message.Subject + "&thing_id=" + "&text=" + message.Body + "&iden=" + iden + "&captcha=" + captcha + "&id=#compose-message" + "&renderstyle=html" }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) { } /* { "jquery": [ [0, 1, "call", ["#compose-message"]], [1, 2, "attr", "find"], [2, 3, "call", [".status"]], [3, 4, "attr", "hide"], [4, 5, "call", []], [5, 6, "attr", "html"], [6, 7, "call", [""]], [7, 8, "attr", "end"], [8, 9, "call", []], [1, 10, "attr", "find"], [10, 11, "call", [".status"]], [11, 12, "attr", "show"], [12, 13, "call", []], [13, 14, "attr", "html"], [14, 15, "call", ["your message has been delivered"]], [15, 16, "attr", "end"], [16, 17, "call", []], [1, 18, "attr", "find"], [18, 19, "call", ["*[name=captcha]"]], [19, 20, "attr", "attr"], [20, 21, "call", ["value", ""]], [21, 22, "attr", "end"], [22, 23, "call", []], [1, 24, "attr", "find"], [24, 25, "call", ["*[name=to]"]], [25, 26, "attr", "attr"], [26, 27, "call", ["value", ""]], [27, 28, "attr", "end"], [28, 29, "call", []], [1, 30, "attr", "find"], [30, 31, "call", ["*[name=text]"]], [31, 32, "attr", "attr"], [32, 33, "call", ["value", ""]], [33, 34, "attr", "end"], [34, 35, "call", []], [1, 36, "attr", "find"], [36, 37, "call", ["*[name=subject]"]], [37, 38, "attr", "attr"], [38, 39, "call", ["value", ""]], [39, 40, "attr", "end"], [40, 41, "call", []] ] } */ }
public static PostListing getUnmoderated(Session session, string sub) { // var request = new Request { Url = "http://www.reddit.com/r/" + sub + "/about/unmoderated/.json?limit=100", Method = "GET", Cookie = session.Cookie }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new Exception(json); var o = JObject.Parse(json); return PostListing.FromJson(o); }
/// <summary> /// Search for a subreddit based on it's title and description /// </summary> /// <param name="session"></param> /// <param name="query"></param> /// <returns></returns> public static SubListing Search(Session session, string subID, string query) { // http://www.reddit.com/reddits/search.json?q=cats throw new NotImplementedException(); }
public static TrafficListing GetTrafficStats(Session session, string sub) { var request = new Request { Url = "http://www.reddit.com/r/" + sub + "/about/traffic/.json", Method = "GET", Cookie = session.Cookie }; // Permission error is not thrown, just a 404 // {"error": 404} throw new NotImplementedException(); }
public static void UnNsfw(Session session, string sub, string id, string modhash) { var request = new Request { Url = "http://www.reddit.com/api/unmarknsfw", Method = "POST", Cookie = session.Cookie, Content = "id=" + id + "&executed=unmarked" + "&r=" + sub + "&uh=" + modhash + "&renderstyle=html" }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new RedditException(json); var o = JObject.Parse(json); }
internal static void VoteUp(Session session, string id, string modhash) { Vote(session, id, modhash, 1); }
public static void UnSave(Session session, string id, string modhash) { Thing.UnSave(session, id, modhash); }
/// <summary> /// /// </summary> /// <param name="session"></param> /// <param name="id"></param> /// <see cref="https://github.com/reddit/reddit/wiki/API:-report"/> public static void Report(Session session, string id, string modhash) { Thing.Report(session, id, modhash); }
public static void GetSendForm(Session session, out string iden, out string captcha) { var request = new Request { Cookie = session.Cookie, Method = "GET", Url = "http://www.reddit.com/message/compose" }; var html = string.Empty; if (request.Execute(out html) != System.Net.HttpStatusCode.OK) throw new Exception(html); // use NSOUP to get the iden string and captcha URL /// var client = NSoup.NSoupClient.Parse(html); //iden = client.Select("#compose-message input[name=iden]").Val(); //captcha = client.Select("#compose-message img.capimage").Attr("src"); iden = null; captcha = null; }
public CosineSimilarityForm() { InitializeComponent(); session = User.Login(ConfigurationManager.AppSettings["username"], ConfigurationManager.AppSettings["password"]); }
/// <summary> /// /// </summary> /// <param name="session"></param> /// <param name="post"></param> /// <see cref="https://github.com/reddit/reddit/wiki/API"/> public static void Submit(Session session, Post post, PostKind kind) { if (string.IsNullOrEmpty((kind == PostKind.Link ? post.Url : post.SelfText))) throw new Exception("No link or self text added to the new post"); if (string.IsNullOrEmpty(post.SubReddit)) throw new Exception("No subreddit set"); if (string.IsNullOrEmpty(post.Title)) throw new Exception("No title provided"); var request = new Request { Url = "http://www.reddit.com/api/submit", Method = "POST", Cookie = session.Cookie, Content = "uh=" + session.ModHash + "&kind=" + (kind == PostKind.Link ? "link" : "self") + "&url=" + (kind == PostKind.Link ? post.Url : post.SelfText) + "&sr=" + post.SubReddit + "&title=" + post.Title + "&r=" + post.SubReddit + "&renderstyle=html" }; var json = string.Empty; if (request.Execute(out json) != System.Net.HttpStatusCode.OK) throw new Exception(json); var o = JObject.Parse(json); // Capcha // o["jquery"][10][3].ToString() // Error Message // o["jquery"][12][3].ToString() }