diff --git a/config.py b/config.py index 58fbc9e..a30a27b 100644 --- a/config.py +++ b/config.py @@ -30,7 +30,7 @@ import configparser import pywikibot -config = configparser.ConfigParser() +config = configparser.ConfigParser(interpolation=None) config.read(pywikibot.config.get_base_dir() + "/jogobot.conf") # Make jogobot entrys available in root level (without sections) diff --git a/jogobot.py b/jogobot.py index 437f75a..aa8692d 100644 --- a/jogobot.py +++ b/jogobot.py @@ -23,6 +23,7 @@ # import os +import shlex from datetime import datetime from email.mime.text import MIMEText from subprocess import Popen, PIPE, TimeoutExpired @@ -32,7 +33,7 @@ import pywikibot from pywikibot.bot import( DEBUG, INFO, WARNING, ERROR, CRITICAL, STDOUT, VERBOSE, logoutput ) -import jogobot.config as config +from jogobot.config import config def output( text, level="INFO", decoder=None, newline=True, @@ -41,7 +42,7 @@ def output( text, level="INFO", decoder=None, newline=True, Wrapper for pywikibot output functions """ - text = datetime.utcnow().strftime( "%Y-%m-%d %H:%M:%S (UTC) " ) + text + text = datetime.utcnow().strftime( config["log_timestamp"] ) + " " + text if ( level.upper() == "STDOUT" ): _level = STDOUT @@ -102,7 +103,7 @@ pywikibot.output = pywikibot_output def sendmail( Subject, Body, To=None, CC=None, BCC=None, - From="JogoBot " ): + From=config["mail_from"] ): """ Provides a simple wrapper for exim (MTA) on tool labs Params should be formated according related fields in RFC 5322 @@ -143,7 +144,7 @@ def sendmail( Subject, Body, To=None, CC=None, BCC=None, # We have no local MTA so we need to catch errors and write to file instead try: # Send the message via exim - with Popen( config.mail_cmd, stdin=PIPE, + with Popen( shlex.split(config['mail_cmd']), stdin=PIPE, universal_newlines=True ) as MTA: MTA.communicate(msg.as_string()) @@ -164,9 +165,9 @@ def sendmail( Subject, Body, To=None, CC=None, BCC=None, except FileNotFoundError: # Local fallback - with open( config.bot_dir + "/Mail.txt", "a" ) as mail: + with open( config["dir"] + "/Mail.txt", "a" ) as mail: mail.write( "\n\n" ) - mail.write( datetime.utcnow().strftime( "%Y-%m-%d %H:%M:%S (UTC)")) + mail.write( datetime.utcnow().strftime( config["log_timestamp"])) mail.write( "\n" + msg.as_string() ) @@ -218,8 +219,7 @@ class StatusAPI: self.site = pywikibot.Site() # We need the shell working directory - self.cwd = "/home/joni/GOLDERWEB/Daten/Projekte/" +\ - "05_Wikimedia/62_BOT/bot" + self.cwd = config["dir"] def is_disabled_on_wiki( self, task_slug=None ): """