Skip to content

Repository files navigation

RedditSharp

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);}

Development

RedditSharp is developed with the following workflow:

  1. Nothing happens for weeks
  2. Someone needs it to do something it doesn't already do
  3. That person implements that something and submits a pull request
  4. Repeat

If it doesn't have a feature that you want it to have, add it! The code isn't that scary.

About

C# Implementation of the Reddit API. I add to this whenever I need to do something new with Reddit.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages