A partial implementation of the Reddit API. Includes support for many API endpoints, as well as LINQ-style paging of results.
varreddit=newReddit();varuser=reddit.LogIn("username","password");varsubreddit=reddit.GetSubreddit("/r/example");subreddit.Subscribe();varposts=subreddit.GetNew();foreach(varpostinposts.Take(25)){if(post.Title=="What is my karma?"){// Note: This is an example. Bots are not permitted to cast votes automatically.post.Upvote();varcomment=post.Comment(string.Format("You have {0} link karma!",post.Author.LinkKarma));comment.Distinguish(DistinguishType.Moderator);}}Important note: Make sure you use .Take(int) when working with pagable content. For example, don't do this:
varall=reddit.GetRSlashAll();foreach(varpostinall){// ...}This will cause you to page through everything that has ever been posted on Reddit. Better:
varall=reddit.GetRSlashAll();foreach(varpostinall.Take(25)){// ...}Here's another example: you've made a bot to periodically check your subreddit's new page for things to automatically remove:
varsubreddit=reddit.GetSubreddit("/r/myawesomesubreddit");varnewPosts=subreddit.GetNew();varlatest=newPosts.Skip(24).First();while(true){// Gets all posts since the last post checkedvartoCheck=newPosts.TakeWhile(p =>p!=latest).ToArray();CheckPosts(toCheck);Thread.Sleep(60000);}RedditSharp is developed with the following workflow:
- Nothing happens for weeks
- Someone needs it to do something it doesn't already do
- That person implements that something and submits a pull request
- Repeat
If it doesn't have a feature that you want it to have, add it! The code isn't that scary.