GithubHelp home page GithubHelp logo

reddit-bot's Introduction

It is a reddit-wide bot that parses comments and checks if they have Twitter link in them.

Bot profile: http://www.reddit.com/user/TweetsInCommentsBot

If a comment contains a link then bot checks if user already submitted body of a tweet within comment and if not it posts value of a tweet as a child response.

It is written entirely in Java. I started writing it in python but I do not know this language very well (if at all), so with great support for Java on RPi and after reading this blog: http://www.teamten.com/lawrence/writings/java-for-everything.html I decided to pick that language. I wanted it to be as modular and generic so I can reuse the main frame of the appliation if I wanted to create another bot.

I run into some difficulites, mostly caused by reddit and twitter api, their respective limitations and what not. Also JRAW introduced two major bugs to my application and they were rather hard to debug and solve.

It is run on Raspberry PI, but can be run on any machine. I have automated deploying process for linux system.

reddit-bot's People

Contributors

janpetryk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

reddit-bot's Issues

Backslashes are not escaped

It appears the bot is not escaping backslashes. This can be seen at this comment. It converted the shrug emote to ¯\\_(ツ)\_/¯ while it should be ¯\\\_(ツ)\_/¯. The underscores were escaped, but since there is a backslash already the one supposed to escape the first underscore is instead displayed as backslash.

NetworkException when posting comment (returns HTTP/1.1 403 Forbidden)

Hi,

Currently playing around with the replytocomment method, but when I try to actually reply to a comment I get a 403 back. Any idea why?

The code I've been using:

`   public PostCommentResult replyToComment(String parentCommentFullName, String responseCommentBody) {
        try {
            RedditResponse response = redditClient.execute(redditClient.request()
                .endpoint(Endpoints.COMMENT)
                .post(JrawUtils.args(
                    "api_type", "json",
                    "text", responseCommentBody,
                    "thing_id", parentCommentFullName))
                .build());
            return processResponse(response);
        } catch (NetworkException e) {
            if (e.getCode() == 403) {
                return PostCommentResult.bannedFromThisSub();
            }
            return null;
        }
    }

    private PostCommentResult processResponse(RedditResponse response) {
        if (response.hasErrors()) {
            String message = response.getErrors()[0].getMessage();
            if (message.contains("DELETED_COMMENT")) {
                return PostCommentResult.commentDeleted();
            } else {
                return PostCommentResult.unsuccessful(message);
            }
        } else {
            return PostCommentResult.successful(response.getJson().get("json").get("data").get("things").get(0)
                .get("data").get("id").toString().substring(3));
        }
    }
`

Getting posts and authenticating works fine, but as soon as I want to reply I get a 403 forbidden back.

Tests fail ...

Tests in error: 
  testCommentContainsLongTwitterLinkInTheBeginning(pl.jpetryk.redditbot.utils.CommentParserTest)
  testCommentContainsOnlyLongTwitterLink(pl.jpetryk.redditbot.utils.CommentParserTest)
  testCommentContainsLongTwitterLinkInTheEnd(pl.jpetryk.redditbot.utils.CommentParserTest)
  testMultipleLinksInOneComment(pl.jpetryk.redditbot.utils.CommentParserTest)
  testCommentDoesNotContainTwitterLink(pl.jpetryk.redditbot.utils.CommentParserTest)
  testCommentContainsLongTwitterLinkInTheMiddle(pl.jpetryk.redditbot.utils.CommentParserTest)
  initializationError(pl.jpetryk.redditbot.bot.AbstractRedditBotTest): Guice creation errors:(..)

Is there setup advice? Like a throwaway user name and password needed?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.