"""Loads the script configuration from a file or creates such."""
config = configparser.RawConfigParser()
success = config.read(CONFIG_FILENAME)
+ try:
+ config.get('basic_settings', 'file_log_level')
+ config.get('basic_settings', 'console_log_level')
+ config.get('basic_settings', 'imap_server')
+ config.getint('basic_settings', 'tolerance_mins')
+ config.get('basic_settings', 'skip_shared_folders')
+ config.get('basic_settings', 'fallback_to_date_header')
+ except configparser.NoOptionError:
+ success = []
+ except ValueError:
+ success = []
+
+ # if corrupted settings save file and load default
if(len(success)==0):
- config.add_section('basic_settings')
+ if(not config.has_section('basic_settings')):
+ config.add_section('basic_settings')
config.set('basic_settings', 'file_log_level', logging.INFO)
config.set('basic_settings', 'console_log_level', logging.INFO)
config.set('basic_settings', 'imap_server', 'imap.company.com')
with open(CONFIG_FILENAME, 'w') as configfile:
config.write(configfile)
configfile.write("# 0 NOTSET, 10 DEBUG, 20 INFO, 30 WARNING, 40 ERROR, 50 CRITICAL")
+
return config
def prepare_logger(config):
user_reader = csv.DictReader(open(CSV_FILENAME, "r"), delimiter=',')
for user in user_reader:
try:
- session = MailIterator(server, user['username'], user['password'])
+ session = MailIterator(server, user['username'], user['password'],
+ config.get('basic_settings', 'skip_shared_folders')=="ON")
except UserWarning as ex:
logging.error(ex)
continue