This is a hard fork and IS maintained.
Due to the project being abandoned and the previous owner's refusal to transfer the repository to someone else to maintain it, I've created this fork to continue on support for the project.
A partial implementation of the Reddit API. Includes support for many API endpoints, as well as LINQ-style paging of results.
varwebAgent=newBotWebAgent("BotUsername","BotPass","ClientID","ClientSecret","RedirectUri");//This will check if the access token is about to expire before each request and automatically request a new one for you//"false" means that it will NOT load the logged in user profile so reddit.User will be nullvarreddit=newReddit(webAgent,false);varsubreddit=reddit.GetSubreddit("/r/example");subreddit.Subscribe();foreach(varpostinsubreddit.New.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.RSlashAll;foreach(varpostinall.New)// BAD{// ...}This will cause you to page through everything that has ever been posted on Reddit. Better:
varall=reddit.RSlashAll;foreach(varpostinall.New.Take(25)){// ...}Using ListingStreams
Use ListingStreams to infinitely yeild new Things posted to reddit
Example:
// get all new comments as they are posted.foreach(varcommentinsubreddit.CommentStream){Console.WriteLine(DateTime.Now+" New Comment posted to /r/example: "+comment.ShortLink);}you can call .GetListingStream() on any Listing
// get new modmailvarnewModmail=user.ModMail.GetListingStream();foreach(varmessageinnewModmail){if(message.FirstMessageName=="")message.Reply("Thanks for the message - we will get back to you soon.");}RedditSharp is developed with the following workflow:
- Nothing happens for weeks/months/years
- 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.