]> vault307.fbx.one Git - mu_code.git/blob - newGT.py
early learning in mu editor
[mu_code.git] / newGT.py
1 #!/usr/bin/env python3
2 import os.path
3 import random
4 import itertools
5 import base64
6 from email.mime.text import MIMEText
7 from google.auth.transport.requests import Request
8 from google.oauth2.credentials import Credentials
9 from google_auth_oauthlib.flow import InstalledAppFlow
10 from googleapiclient.discovery import build
11
12
13 SCOPES=['https://www.googleapis.com/auth/spreadsheets.readonly',
14 'https://mail.google.com/']
15 SPREADSHEET='1cEviBnbCudweCIVYzHa1GX9l8feFwXMSdqkpDIX-E-A'
16 RANGE='goodMessages!A:A'
17
18 # authorization from credentials to token
19 creds=None
20 """the file token-gt.json stores access/refresh tokens, and is
21 created automatically when auth flow completes first time"""
22 if os.path.exists('token-gt.json'):
23 creds=Credentials.from_authorized_user_file('token-gt.json',SCOPES)
24 # If there are no (valid) credentials available, let the user log in
25 if not creds or not creds.valid:
26 if creds and creds.expired and creds.refresh_token:
27 creds.refresh(Request())
28 else:
29 flow=InstalledAppFlow.from_client_secrets_file(
30 'credentials-sheets.json', SCOPES)
31 creds=flow.run_local_server(port=0)
32 # Save credentials for next run
33 with open('token-gt.json','w') as token:
34 token.write(creds.to_json())
35
36 # build sheets
37 sheetsServ=build('sheets','v4', credentials=creds)
38 result=sheetsServ.spreadsheets().values().get(spreadsheetId=SPREADSHEET,\
39 range=RANGE).execute()
40 rows=result.get('values',[])
41 texts=list(itertools.chain(*rows))
42 text=texts[(random.randint(0,(len(texts)-1)))]
43 #print(text)
44
45 # build gmail
46 mailServ=build('gmail','v1', credentials=creds)
47
48 def create_message(sender,to, subject, message_text):
49 """Create a message for an email.
50 Args:
51 sender: Email address of sender
52 to: Email address of receiver
53 subject: The subject of the email message
54 message_text: the text of the email message
55
56 returns:
57 an object containing a base64url encoded email object
58 """
59 message=MIMEText(message_text)
60 message['to']=to
61 message['from']=sender
62 message['subject']=subject
63 return{'raw':base64.urlsafe_b64encode(message.as_string().encode()).
64 decode()}
65
66 LIVE='6055954622@vtext.com' #KATIE
67 TESTING='6059295681@vtext.com' #JIMMY
68 message=create_message(sender='me',to=LIVE,
69 subject='',message_text=text)
70 #print(message)
71 eMessage=(mailServ.users().messages().
72 send(userId='me', body=message).execute())