diff --git a/waterbill/.gitignore b/waterbill/.gitignore new file mode 100644 index 0000000..772ea83 --- /dev/null +++ b/waterbill/.gitignore @@ -0,0 +1,2 @@ +client_secrets.json +.venv/ diff --git a/waterbill/requirements.txt b/waterbill/requirements.txt new file mode 100644 index 0000000..d8055e0 --- /dev/null +++ b/waterbill/requirements.txt @@ -0,0 +1 @@ +google-api-python-client diff --git a/waterbill/waterbill.py b/waterbill/waterbill.py new file mode 100644 index 0000000..c629eb7 --- /dev/null +++ b/waterbill/waterbill.py @@ -0,0 +1,44 @@ +import os +import sys + +from apiclient import discovery +from oauth2client import client +from oauth2client import tools + + +def main(): + config_dir = get_config_dir() + if not os.path.exists(config_dir): + os.makedirs(config_dir) + + creds_path = os.path.join(config_dir, 'creds.json') + store = oauth2client.file.Storage(creds_path) + creds = store.get() + + if not creds or creds.invalid: + flow = client.flow_from_clientsecrets( + get_client_secrets(), + scope='https://www.googleapis.com/auth/gmail.readonly' + ) + flow.user_agent = 'Buch Bedford Water Bill' + creds = tools.run(flow, store) + + http = creds.authorize(httplib2.Http()) + service = discovery.build('gmail', 'v1', http=http) + + results = service.users().messages().list(userId='me').execute() + labels = results.get('labels', []) + + return 0 + + +def get_client_secrets(): + return os.environ.get('CLIENT_SECRETS_JSON', 'client_secrets.json') + + +def get_config_dir(): + return os.path.expanduser(os.environ.get('config_dir', '~/.config/bbwb')) + + +if __name__ == '__main__': + sys.exit(main())