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()
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()