コード例 #1
0
ファイル: redditrover.py プロジェクト: jmhayes3/RedditRover
    def __init__(self):
        warning_filter.ignore()
        self.config = ConfigParser()
        self.config.read(resource_filename('config', 'bot_config.ini'))
        self.mark_as_read, self.catch_http_exception, self.delete_after, self.verbose, self.update_interval, \
            subreddit, generate_stats, www_path = self._bot_variables()
        self.logger = logprovider.setup_logging(
            log_level=("DEBUG", "INFO")[self.verbose], web_log_path='log.log')
        self.multi_thread = MultiThreader()
        self.lock = self.multi_thread.get_lock()
        self.database_update = Database()
        self.database_cmt = Database()
        self.database_subm = Database()

        try:
            self.praw_handler = RoverHandler()
            self.responders = []
            self.load_responders()
            self.submission_poller = praw.Reddit(
                user_agent=self.config.get("SUBMISSION_BOT", "description"),
                client_id=self.config.get("SUBMISSION_BOT", "app_key"),
                client_secret=self.config.get("SUBMISSION_BOT", "app_secret"),
                refresh_token=self.config.get("SUBMISSION_BOT",
                                              "refresh_token"))
        except Exception as e:  # I am sorry linux, but ConnectionRefused Error can't be imported.
            self.logger.error(e)
            self.logger.error(traceback.print_exc())
            exit(-1)
        if generate_stats:  # Not everyone hosts a webserver, not everyone wants stats.
            self.stats = StatisticsFeeder(self.database_update,
                                          self.praw_handler, www_path)
        else:
            self.stats = None

        self.sub = self.submission_poller.subreddit(subreddit)
        self.submissions = self.sub.stream.submissions(pause_after=-1)
        self.comments = self.sub.stream.comments(pause_after=-1)
        self.multi_thread.go([self.comment_thread], [self.submission_thread],
                             [self.update_thread])
        self.multi_thread.join_threads()
コード例 #2
0
ファイル: redditrover.py プロジェクト: athresh/RedditRover
 def __init__(self):
     warning_filter.ignore()
     self.config = ConfigParser()
     self.config.read(resource_filename('config', 'bot_config.ini'))
     self.mark_as_read, self.catch_http_exception, self.delete_after, self.verbose, self.update_interval, \
         subreddit, generate_stats, www_path = self._bot_variables()
     self.logger = logprovider.setup_logging(log_level=("DEBUG", "INFO")[self.verbose],
                                             web_log_path=www_path + '_data/weblog.txt')
     self.multi_thread = MultiThreader()
     self.lock = self.multi_thread.get_lock()
     self.database_update = Database()
     self.database_cmt = Database()
     self.database_subm = Database()
     try:
         self.praw_handler = RoverHandler()
         self.responders = []
         self.load_responders()
         self.submission_poller = praw.Reddit(user_agent='Submission-Poller for several logins by /u/DarkMio',
                                              handler=self.praw_handler)
         self.comment_poller = praw.Reddit(user_agent='Comment-Poller for several logins by /u/DarkMio',
                                           handler=self.praw_handler)
     except Exception as e:  # I am sorry linux, but ConnectionRefused Error can't be imported.
         self.logger.error("PRAW Multiprocess server does not seem to be running. "
                           "Please make sure that the server is running and responding. "
                           "Bot is shutting down now.")
         self.logger.error(e)
         self.logger.error(traceback.print_exc())
         exit(-1)
     if generate_stats:  # Not everyone hosts a webserver, not everyone wants stats.
         self.stats = StatisticsFeeder(self.database_update, self.praw_handler, www_path)
     else:
         self.stats = None
     self.submissions = praw.helpers.submission_stream(self.submission_poller, subreddit, limit=None, verbosity=0)
     self.comments = praw.helpers.comment_stream(self.comment_poller, subreddit, limit=None, verbosity=0)
     self.multi_thread.go([self.comment_thread], [self.submission_thread], [self.update_thread])
     self.multi_thread.join_threads()
コード例 #3
0
            + self.outro_drop
        )


def init(database, handler):
    """Init Call from module importer to return only the object itself, rather than the module."""
    return Massdrop(database, handler)


if __name__ == "__main__":
    from core import logprovider
    from core.database import Database
    from core.handlers import RoverHandler
    from time import strptime

    logger = logprovider.setup_logging()
    mt = MassdropText("bot_config.ini")
    print(mt)
    db = Database()
    md = Massdrop(db, RoverHandler())

    thread_dict = {
        "thing": md.session.get_info(thing_id="t1_cv0hu2w"),  # could be unsafe, but is immensely faster
        "created": strptime("2015-09-14 00:11:11", "%Y-%m-%d %H:%M:%S"),
        "lifetime": strptime("2015-09-14 00:11:11", "%Y-%m-%d %H:%M:%S"),
        "last_updated": strptime("2015-09-14 00:11:11", "%Y-%m-%d %H:%M:%S"),
        "interval": 3600,
    }

    md.update_procedure(**thread_dict)
コード例 #4
0
            if self.database.retrieve_thing(thread_id, self.BOT_NAME):
                return False
            self.add_comment(thing.name, self.RESPONSE)
            self.database.insert_into_storage(thread_id, self.BOT_NAME)
            return True
        return False

    def on_new_message(self, message):
        text = "New message from /u/{author}:\n\n---\n\n{body}"
        if not message.was_comment:
            author, body = message.author, message.body
            self.session.send_message('FT7G-G', message.subject, text.format(author=author, body=body))
            self.session.send_message('DarkMio', message.subject, text.format(author=author, body=body))


def init(database, handler):
    """Init Call from module importer to return only the object itself, rather than the module."""
    return LeafeatorBot(database, handler)


if __name__ == '__main__':
    from core.database import Database
    from core.logprovider import setup_logging
    from core.handlers import RoverHandler
    logger = setup_logging(log_level="DEBUG")
    db = Database()
    lb = LeafeatorBot(db, RoverHandler())
    lb.test_single_comment('cuomou4')

    # lb.execute_submission(subm)
コード例 #5
0
    def execute_comment(self, comment):
        if comment.subreddit.display_name.lower() == 'dota2' or random() <= 0.001:
            reply = self.produce_dank_maymays(comment.body)
            if reply:
                self.add_comment(comment.name, reply)
                return True

    def produce_dank_maymays(self, message):
        msg = ''
        i = 0
        while(not (10 < len(msg) < 210)):
            if i > 4:
                msg = ''
                break
            msg = self.brain.reply(message)
            i += 1
        return msg


def init(database, handler):
    return MioMarkov(database, handler)

if __name__ == '__main__':
    from core.logprovider import setup_logging
    from core.handlers import RoverHandler
    from core.database import Database
    logger = setup_logging('DEBUG')
    mm = MioMarkov(Database(), RoverHandler())
    mm.test_single_comment('cvfmf9e')