From 9c08687f25ee77c1af3c2249fbc333a5d174451c Mon Sep 17 00:00:00 2001 From: Alexander Hosking Date: Sun, 8 Jan 2023 23:10:07 -0500 Subject: [PATCH] Add influx data --- gmail/email_count.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/gmail/email_count.py b/gmail/email_count.py index e426bbb..3a1e0d0 100644 --- a/gmail/email_count.py +++ b/gmail/email_count.py @@ -1,9 +1,13 @@ import os import imaplib import json -from dotenv import load_dotenv +from time import strftime +import influxdb_client +from influxdb_client.client.write_api import SYNCHRONOUS +from dotenv import load_dotenv, dotenv_values load_dotenv() +config = dotenv_values(".env") EMAIL_ACCOUNTS = json.loads(os.environ.get("MAIL_ACCOUNTS")) EMAIL_PASSWORDS = json.loads(os.environ.get("MAIL_PASSWORDS")) @@ -11,6 +15,14 @@ EMAIL_PASSWORDS = json.loads(os.environ.get("MAIL_PASSWORDS")) # to convert lists to dictionary accounts = dict(zip(EMAIL_ACCOUNTS, EMAIL_PASSWORDS)) print(accounts) + +# Influx DB +client = influxdb_client.InfluxDBClient( + url=config['DB_URL'], + token=config['DB_TOKEN'], + org=config['DB_ORG'] +) + ################ IMAP SSL ############################## for account in accounts: @@ -30,8 +42,8 @@ for account in accounts: resp_code, messages = imap_ssl.search(None, 'UnSeen') if resp_code == 'OK': if len(messages[0].split()) > 0: - #print('True') - #print(messages[0].split()) + # print('True') + # print(messages[0].split()) unread_messages = len(messages[0].split()) else: print('False') @@ -42,4 +54,12 @@ for account in accounts: imap_ssl.close() if unread_messages: message = f"{account} has {unread_messages} messages." + date = strftime("%Y-%m-%d") + time = strftime("%H:%M:%S") + timestamp = date + "T" + time + "Z" + write_api = client.write_api(write_options=SYNCHRONOUS) + point = influxdb_client.Point("unread_emails").time(timestamp).tag("account", account)\ + .field("count", unread_messages) + write_api.write(bucket="personal_data", + org=config['DB_ORG'], record=point) print(message)