-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsend_sms.py
More file actions
110 lines (83 loc) · 2.91 KB
/
send_sms.py
File metadata and controls
110 lines (83 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# /usr/bin/env python
# download twilio-python library
import os
import sched
import time
from twilio.rest import Client
# credentials
account_sid = os.environ["TWILIO_SID"]
auth_token = os.environ["TWILIO_TOKEN"]
client = Client(account_sid, auth_token)
DELAY = 5
DELAY_WEEK = 42
def get_numbers():
number_array = []
message_object_array = client.messages.list()
for message in message_object_array:
if message.direction == 'inbound' and message.from_ not in number_array:
number_array.append(message.from_)
return number_array
# message = client.api.account.messages.create(
# to=os.environ["BEC_NUMBER"],
# from_=os.environ["TWILIO_NUMBER_TEST"],
# body="Testing brag log heeeey"
# )
def welcome():
# last priority.
# send them one initial welcome message when we get new number from website
pass
def brag_timer():
# s = sched.scheduler(time.time, time.sleep)
# s.enter(DELAY, 1, brag_reminder(get_numbers(), s), (s,))
# s.enter(DELAY, 1, brag_log(s), (s,))
# s.run()
# hack version
for i in range(0, 7):
brag_reminder(get_numbers())
time.sleep(5)
# time.sleep(86400) # seconds in a day
brag_log()
# def brag_log(scheduler):
def brag_log():
msg_by_num = {}
for message in client.messages.list(): # array of all messages
# for each number, send most recent 7 messages (0-7 index)
if message.direction == 'inbound':
if message.from_ not in msg_by_num.keys():
msg_by_num[message.from_] = []
# stores message in the number's array of messages
msg_by_num[message.from_].append(message.body)
print(msg_by_num)
for number, messages in msg_by_num.items():
messages = messages[0:7]
newline = "\n"
messages = newline.join(messages)
# emojis = u'\U0001f483 \U0001f451 \u2728 \U0001f3c6'.encode('unicode_escape')
client.api.account.messages.create(
to=number,
from_=os.environ["TWILIO_NUMBER"],
body= "Here's what you accomplished this week! Nice!!!! \n" + messages
)
# scheduler.enter(DELAY_WEEK, 1, brag_log(scheduler), (scheduler,))
# s = sched.scheduler(time.time, time.sleep)
def brag_reminder(numbers):
# send at certain time.
# send to all numbers stored.
for number in numbers:
client.api.account.messages.create(
to=number,
from_=os.environ["TWILIO_NUMBER"],
body="Send me your brag for the day!"
)
# scheduler.enter(DELAY, 1, brag_reminder(get_numbers(), scheduler), (scheduler,))
brag_timer()
# live credentials
# account_sid = os.environ["TWILIO_SID"]
# auth_token = os.environ["TWILIO_TOKEN"]
# client = Client(account_sid, auth_token)
#
# message = client.api.account.messages.create(
# to=os.environ["BEC_NUMBER"],
# from_=os.environ["TWILIO_NUMBER"],
# body="Testing brag log heeeey"
# )