|
| 1 | +from googleapiclient.discovery import build |
| 2 | +from httplib2 import Http |
| 3 | +from oauth2client import file, client, tools |
| 4 | +from googleapiclient.errors import HttpError |
| 5 | +import email |
| 6 | +from Bot import post_message |
| 7 | + |
| 8 | +SCOPES = 'https://www.googleapis.com/auth/gmail.readonly' |
| 9 | + |
| 10 | + |
| 11 | +def main(): |
| 12 | + store = file.Storage('token.json') |
| 13 | + creds = store.get() |
| 14 | + if not creds or creds.invalid: |
| 15 | + flow = client.flow_from_clientsecrets( |
| 16 | + 'credentials.json', SCOPES) |
| 17 | + creds = tools.run_flow(flow, store) |
| 18 | + try: |
| 19 | + service = build('gmail', 'v1', http=creds.authorize(Http())) |
| 20 | + results = service.users().messages().list(userId='me', labelIds=['INBOX']).execute() |
| 21 | + emails = results.get('messages', []) |
| 22 | + for email in emails: |
| 23 | + messageheader = service.users().messages().get(userId='me', id=email['id'],format='full',metadataHeaders=None).execute() |
| 24 | + headers = messageheader["payload"]["headers"] |
| 25 | + subject = [i['value'] for i in headers if i["name"] == "Subject"] |
| 26 | + if subject == ['Your-Message-Topic]: |
| 27 | + msg = service.users().messages().get(userId='me', id=email['id']).execute() |
| 28 | + print(msg['snippet']) |
| 29 | + response = msg['snippet'] |
| 30 | + post_message(response) |
| 31 | + else: |
| 32 | + exit(0) |
| 33 | + except HttpError as error: |
| 34 | + print(f'An error occurred: {error}') |
| 35 | + |
| 36 | +if __name__ == '__main__': |
| 37 | + main() |
0 commit comments