From a3b74dcfff3350d069728b006ab7e77f1df1993a Mon Sep 17 00:00:00 2001 From: b3yond Date: Fri, 23 Mar 2018 11:18:00 +0100 Subject: [PATCH] initializing logger is also done by ticketfrei now --- mailbot.py | 26 +++++++++----------------- retootbot.py | 19 ++++++------------- retweetbot.py | 30 +++++++++++------------------- ticketfrei.py | 13 +++++-------- 4 files changed, 31 insertions(+), 57 deletions(-) diff --git a/mailbot.py b/mailbot.py index 64e2644..9e56a78 100644 --- a/mailbot.py +++ b/mailbot.py @@ -6,12 +6,10 @@ import time import trigger import datetime import email -import logging +import ticketfrei import imaplib import report -logger = logging.getLogger(__name__) - class Mailbot(object): """ @@ -27,6 +25,7 @@ class Mailbot(object): :param config: (dictionary) config.toml as a dictionary of dictionaries """ self.config = config + self.logger = ticketfrei.get_logger(config) self.history_path = history_path self.last_mail = self.get_history(self.history_path) @@ -41,18 +40,18 @@ class Mailbot(object): try: self.mailbox.starttls(ssl_context=context) except: - logger.error('StartTLS failed', exc_info=True) + self.logger.error('StartTLS failed', exc_info=True) try: self.mailbox.login(self.config["mail"]["user"], self.config["mail"]["passphrase"]) except imaplib.IMAP4.error: - logger.error("Login to mail server failed", exc_info=True) + self.logger.error("Login to mail server failed", exc_info=True) try: mailer = sendmail.Mailer(config) mailer.send('', config['mail']['contact'], 'Ticketfrei Crash Report', attachment=config['logging']['logpath']) except: - logger.error('Mail sending failed', exc_info=True) + self.logger.error('Mail sending failed', exc_info=True) def repost(self, status): """ @@ -72,7 +71,7 @@ class Mailbot(object): try: rv, data = self.mailbox.select("Inbox") except imaplib.IMAP4.abort: - logger.error("Crawling Mail failed", exc_info=True) + self.logger.error("Crawling Mail failed", exc_info=True) rv = False msgs = [] if rv == 'OK': @@ -83,7 +82,7 @@ class Mailbot(object): for num in data[0].split(): rv, data = self.mailbox.fetch(num, '(RFC822)') if rv != 'OK': - logger.error("Couldn't fetch mail %s %s" % (rv, str(data))) + self.logger.error("Couldn't fetch mail %s %s" % (rv, str(data))) return msgs msg = email.message_from_bytes(data[0][1]) @@ -172,15 +171,8 @@ class Mailbot(object): if __name__ == "__main__": - import ticketfrei config = ticketfrei.get_config() - # set log file - logger = logging.getLogger() - fh = logging.FileHandler(config['logging']['logpath']) - fh.setLevel(logging.DEBUG) - logger.addHandler(fh) - # initialise trigger trigger = trigger.Trigger(config) @@ -195,7 +187,7 @@ if __name__ == "__main__": except KeyboardInterrupt: print("Good bye. Remember to restart the bot!") except: - logger.error('Shutdown', exc_info=True) + m.logger.error('Shutdown', exc_info=True) m.save_last() try: mailer = sendmail.Mailer(config) @@ -203,4 +195,4 @@ if __name__ == "__main__": 'Ticketfrei Crash Report', attachment=config['logging']['logpath']) except: - logger.error('Mail sending failed', exc_info=True) + m.logger.error('Mail sending failed', exc_info=True) diff --git a/retootbot.py b/retootbot.py index 85a3bae..dc5a831 100755 --- a/retootbot.py +++ b/retootbot.py @@ -6,16 +6,14 @@ import pickle import re import time import trigger -import logging import sendmail import report - -logger = logging.getLogger(__name__) - +import ticketfrei class RetootBot(object): def __init__(self, config): self.config = config + self.logger = ticketfrei.get_logger(config) self.client_id = self.register() self.m = self.login() @@ -73,7 +71,7 @@ class RetootBot(object): try: all = self.m.notifications() except: # mastodon.Mastodon.MastodonAPIError is unfortunately not in __init__.py - logger.error("Unknown Mastodon API Error.", exc_info=True) + self.logger.error("Unknown Mastodon API Error.", exc_info=True) return mentions for status in all: if (status['type'] == 'mention' and status['status']['id'] not in self.seen_toots): @@ -96,7 +94,7 @@ class RetootBot(object): :param mention: (report.Report object) """ - logger.info('Boosting toot from %s' % ( + self.logger.info('Boosting toot from %s' % ( mention.format())) self.m.status_reblog(mention.id) @@ -128,13 +126,8 @@ class RetootBot(object): if __name__ == '__main__': - import ticketfrei config = ticketfrei.get_config() - fh = logging.FileHandler(config['logging']['logpath']) - fh.setLevel(logging.DEBUG) - logger.addHandler(fh) - trigger = trigger.Trigger(config) bot = RetootBot(config) @@ -145,11 +138,11 @@ if __name__ == '__main__': except KeyboardInterrupt: print("Good bye. Remember to restart the bot!") except: - logger.error('Shutdown', exc_info=True) + bot.logger.error('Shutdown', exc_info=True) try: mailer = sendmail.Mailer(config) mailer.send('', config['mail']['contact'], 'Ticketfrei Crash Report', attachment=config['logging']['logpath']) except: - logger.error('Mail sending failed', exc_info=True) + bot.logger.error('Mail sending failed', exc_info=True) diff --git a/retweetbot.py b/retweetbot.py index 77c63b2..d713a02 100755 --- a/retweetbot.py +++ b/retweetbot.py @@ -6,12 +6,9 @@ import requests import trigger from time import sleep import report -import logging +import ticketfrei import sendmail -logger = logging.getLogger(__name__) - - class RetweetBot(object): """ This bot retweets all tweets which @@ -32,6 +29,7 @@ class RetweetBot(object): Tweet """ self.config = config + self.logger = ticketfrei.get_logger(config) # initialize API access keys = self.get_api_keys() @@ -120,13 +118,13 @@ class RetweetBot(object): self.save_last() return reports except tweepy.RateLimitError: - logger.error("Twitter API Error: Rate Limit Exceeded", exc_info=True) + self.logger.error("Twitter API Error: Rate Limit Exceeded", exc_info=True) self.waitcounter += 60*15 + 1 except requests.exceptions.ConnectionError: - logger.error("Twitter API Error: Bad Connection", exc_info=True) + self.logger.error("Twitter API Error: Bad Connection", exc_info=True) self.waitcounter += 10 except tweepy.TweepError: - logger.error("Twitter API Error: General Error", exc_info=True) + self.logger.error("Twitter API Error: General Error", exc_info=True) return [] def repost(self, status): @@ -139,17 +137,17 @@ class RetweetBot(object): while 1: try: self.api.retweet(status.id) - logger.info("Retweeted: " + status.format()) + self.logger.info("Retweeted: " + status.format()) if status.id > self.last_mention: self.last_mention = status.id self.save_last() return status.format() except requests.exceptions.ConnectionError: - logger.error("Twitter API Error: Bad Connection", exc_info=True) + self.logger.error("Twitter API Error: Bad Connection", exc_info=True) sleep(10) # maybe one day we get rid of this error: except tweepy.TweepError: - logger.error("Twitter Error", exc_info=True) + self.logger.error("Twitter Error", exc_info=True) if status.id > self.last_mention: self.last_mention = status.id self.save_last() @@ -169,7 +167,7 @@ class RetweetBot(object): self.api.update_status(status=text) return except requests.exceptions.ConnectionError: - logger.error("Twitter API Error: Bad Connection", exc_info=True) + self.logger.error("Twitter API Error: Bad Connection", exc_info=True) sleep(10) def flow(self, trigger, to_tweet=()): @@ -202,14 +200,8 @@ class RetweetBot(object): if __name__ == "__main__": - import ticketfrei config = ticketfrei.get_config() - # set log file - fh = logging.FileHandler(config['logging']['logpath']) - fh.setLevel(logging.DEBUG) - logger.addHandler(fh) - # initialise trigger trigger = trigger.Trigger(config) @@ -224,7 +216,7 @@ if __name__ == "__main__": except KeyboardInterrupt: print("Good bye. Remember to restart the bot!") except: - logger.error('Shutdown', exc_info=True) + bot.logger.error('Shutdown', exc_info=True) bot.save_last() try: mailer = sendmail.Mailer(config) @@ -232,4 +224,4 @@ if __name__ == "__main__": 'Ticketfrei Crash Report', attachment=config['logging']['logpath']) except: - logger.error('Mail sending failed', exc_info=True) + bot.logger.error('Mail sending failed', exc_info=True) diff --git a/ticketfrei.py b/ticketfrei.py index b2b5c15..b0e6d08 100755 --- a/ticketfrei.py +++ b/ticketfrei.py @@ -10,10 +10,10 @@ from retweetbot import RetweetBot from mailbot import Mailbot from trigger import Trigger -def set_logfile(config): - logfile = config['logging']['logpath'] +def get_logger(config): + logpath = config['logging']['logpath'] logger = logging.getLogger() - fh = logging.FileHandler(logfile) + fh = logging.FileHandler(logpath) fh.setLevel(logging.DEBUG) logger.addHandler(fh) return logger @@ -25,11 +25,8 @@ def get_config(): return config def run(): - # get config config = get_config() - - # set log file - logger = set_logfile(config) + logger = get_logger(config) # set trigger trigger = Trigger(config) @@ -63,8 +60,8 @@ def run(): logger.error('Shutdown', exc_info=True) for bot in bots: bot.save_last() + mailer = sendmail.Mailer(config) try: - mailer = sendmail.Mailer(config) mailer.send('', config['mail']['contact'], 'Ticketfrei Crash Report', attachment=config['logging']['logpath'])