Using the Microsoft Graph API to retrieve Calendar and convert to Orgmode compatible plain text.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

46 lines
1.4 KiB

#!/usr/bin/python
"""Configuration settings for console app using device flow authentication
"""
import re
import os
import configparser
# Read Config from File
config = configparser.RawConfigParser({
'machine': '',
'login': '',
'days_history': 7,
'days_future': 30,
'max_entries': 100
})
directory = os.path.dirname(os.path.realpath(__file__))
config.read(os.path.join(directory, 'config.cfg'))
def get_secret(machine, login, key):
s = "^machine %s login %s[\^]%s password (.*)$" % (machine, login, key)
p = re.compile(s, re.MULTILINE)
authinfo = os.popen("gpg -q --no-tty -d ~/.authinfo.gpg").read()
matches = p.search(authinfo)
if matches is not None:
return matches.group(1)
else:
return None
RESOURCE = config.get('msgraph-orgmode', 'resource')
API_VERSION = config.get('msgraph-orgmode', 'api_version')
LOGIN = config.get('msgraph-orgmode', 'login')
MACHINE = config.get('msgraph-orgmode', 'machine')
CLIENT_ID = config.get('msgraph-orgmode', 'client_id')
CLIENT_SECRET = get_secret(MACHINE, LOGIN, 'client_secret')
daysHistory = config.getint('msgraph-orgmode', 'days_history')
daysFuture = config.getint('msgraph-orgmode', 'days_future')
maxEntries = config.getint('msgraph-orgmode', 'max_entries')
if not CLIENT_ID and not CLIENT_SECRET:
print('ERROR: CLIENT_ID and CLIENT_SECRET are required.')
import sys
sys.exit(1)