Skip to content

Latest commit

 

History

History
168 lines (116 loc) · 5.58 KB

README.md

File metadata and controls

168 lines (116 loc) · 5.58 KB

RedditJerk

RedditJerk is a simple and easy to use Reddit API wrapper for java.

######Still in development!

Example Usage:

 
    //Getting the api instance with useragent as parameter:
    Reddit red = RedditApi.getRedditInstance("Reddit client Test v1313");

    //OAuth login, returns User object of the logged in account
    User myUser = red.login("<username>", "<password>", "<client_id>", "<client_secret>");

    //getting a redditor object
    User jerkUser = red.getUser("reditor123");
    
    //Give user reditor123 six months worth of Reddit Gold
    red.giveGold("reditor123", 6);

    //getting user comments, gets 200 newest comments
    List<Comment> clist = jerkUser.getComments(200, Sorting.NEW);

    //getting user's top 100 submissions
    List<Link> slist = jerkUser.getSubmitted(100, Sorting.TOP);

    //Getting user's Karma Balance in a moronic subreddit for his last 200 comments
    Integer karmaBalance = jerkUser.getKarmaBalance("MensRights", 200);

    //Getting a Subreddit object of a subreddit
    Subreddit amSubr = red.getSubreddit("ShitAmericansSay");

    //get /r/ShitAmericansSay 50 controversial submissions
    amSubr.getControversial(50);

    //get /r/ShitAmericansSay top 10 submissions, default timespan is DAY
    amSubr.getTop(10);

    //we can also specify the timespan
    amSubr.getTop(100, FromPast.ALL_TIME);
    amSubr.getTop(100, FromPast.WEEK);

    //Subscribe to the subreddit
    amSubr.subscribe();
    //Unsubscribe
    amSubr.unsubscribe();

    //Subscribe and unsibscribe from subreddits without gettinga Subreddit object
    red.subscribe("Socialism");
    red.unsubscribe("Funny");

    //and getting it's front page
    List<Link> amlinkList = amSubr.getHot(25);

    //Getting a reddit Thread object
    RedditThread post = red.getRedditThread(
            "https://www.reddit.com/r/Economics/comments/46lkfz/can_sanders_do_it_is_it_plausible_that_there/d06k38f", Sorting.NEW);

    //We can flatten comments like this, this will return all the comments in the
    // thread as a flat list, not inclding the MoreComments hidden comments.
    List<Comment> flatComments = post.getFlatComments();

    //If you want to get ALL the comments you should set fetchMoreComments property of the thread object to true
    //before you get the flat comments, this will make a lot of api calls and take a long time.
    post.fetchMoreComments(true);
    List<Comment> ALLflatComments = post.getFlatComments();

    Link subm = post.getSubmissionPost().getData();
    Comment myComment2 = subm.reply("South Park is Awesome!! :P");

    //Editing our comment
    myComment2.edit("South Park is SUPER Awesome!! :PPP");

    //upvoting the submission
    subm.upvote();

    //hiding and unhiding the submission
    subm.hide();
    subm.unhide();

    //Reaplying to first comment in the thread, myComment is the object of the comment you just posted.
    Comment firstComment = post.getFlatComments().get(0);
    Comment myComment1 = firstComment.reply("Hello!");

    //we can immidately delete our new comment
    myComment1.delete();

    //Submitting a new self post in subreddit TheRedPill that is bound to be upvoted and gilded
    red.Submit("TheRedPill", "DAE thinks women's job should be to please and serve men !?", "Anyone ? ", "self");

    //get top 5 submittions of the week in /r/learnprogramming
    List<Link> learnPrgrTop = red.getSubredditPage("learnprogramming", 5, Sorting.TOP, FromPast.WEEK);

    //getting /r/learnprogramming's moderators
    List<User> learnPrgMods = red.getSubredditModerators("learnprogramming");

    //printing their usernames
    for(User modusr: learnPrgMods){
        System.out.println(modusr.getName());
    }

    /**
     *
     * MODERATION API
     *
     *
     */

    //Accept an invitation to be moderator in /r/Movies
    red.acceptModInvite("Movies");

    //Leaving as moderator in /r/Videos
    red.leaveModeration("Videos");

    red.approve("t3_4jeqzj");

    //remove comment or submission, second parameter: spam= true or false.
    red.remove("t3_4jeqzj", true);

    //Ignore reports from a thing, submission or comment fullId.
    red.ignoreReports("t3_4jeqzj");

    //unignore
    red.unignoreReports("t3_4jeqzj");

    //Distinguish
    red.distinguish("t3_4jeqzj", Distinguish.YES);
    red.distinguish("t3_4jeqzj", Distinguish.ADMIN);
    red.distinguish("t3_4jeqzj", Distinguish.SPECIAL);
    red.distinguish("t3_4jeqzj", Distinguish.NO);

    //Get 100 reported comments in a subreddit you are a moderator of
    red.getModerationReportsComments("Movies", Moderation.REPORTED, 100);

    //Reported 100 Submissions
    red.getModerationReportsSubmissions("Movies", Moderation.REPORTED, 100);

    //Get 100 Spam comments
    red.getModerationReportsComments("Movies", Moderation.SPAM, 100);

    //Get 20 queued moderation Submissions
    red.getModerationReportsSubmissions("Movies", Moderation.QUEUE, 20);

    //Get 50 Unmoderated Submissions
    red.getModerationReportsSubmissions("Movies", Moderation.UNMODERATED, 50);

    //Get Edited comments
    red.getModerationReportsComments("Movies", Moderation.EDITED, 20);


    /**
     * Flair API
     *
     */
    //Clear the Flair templates, second argument should be either ""USER_FLAIR" for user flairs
    // or "LINK_FLAIR" for the link flairs
    red.clearFlairTemplates("flairtestsubreddit", "USER_FLAIR");

    //Set flair to a link, last argument is css_class, it can be left empty if none
    red.linkFlair("Movies", "t3_4jlhec", "GREATEST", "");

    //Set flair to a User, last argument is css_class, it can be left empty if none
    red.userFlair("Movies", "kakunas", "CRAP!!", "");