Пример #1
0
    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
 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()