Skip to content

Commit 6ce6fe4

Browse files
Add crowdsource
1 parent 2564b35 commit 6ce6fe4

File tree

2 files changed

+144
-0
lines changed

2 files changed

+144
-0
lines changed

animations/crowdsource/main.py

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
import sys
2+
from oscapi import ColorsOut
3+
from animations import FadeAnimation
4+
import imaplib
5+
import getpass
6+
import email
7+
import email.header
8+
import datetime
9+
import random
10+
from random import randint
11+
import time
12+
13+
EMAIL_ACCOUNT = "[email protected]"
14+
EMAIL_FOLDER = "INBOX"
15+
16+
black = (0.0,0.0,0.0)
17+
green = (0.0, 1023.0, 0.0)
18+
red = (1023.0, 0.0, 0.0)
19+
blue = (0.0, 0.0, 1023.0)
20+
orange = (1023.0, 511.5,0.0)
21+
yellow = (1023.0, 1023.0, 0.0)
22+
purple = (1023.0, 0.0, 1023.0)
23+
teal = (511.5, 1023.0, 1023.0)
24+
25+
pixels = [black,black,black,black,black,black,
26+
black,black,black,black,black,black,
27+
black,black,black,black,black,black,
28+
black,black,black,black,black,black,
29+
black,black,black,black,black,black,
30+
black,black,black,black,black,black,
31+
black,black,black,black,black,black,
32+
black,black,black,black,black,black]
33+
34+
if __name__ == "__main__":
35+
password = "PASSWORD GOES HERE"
36+
out = FadeAnimation()
37+
out.start()
38+
out.write(pixels)
39+
while True:
40+
M = imaplib.IMAP4_SSL('imap.gmail.com')
41+
42+
try:
43+
rv, data = M.login(EMAIL_ACCOUNT, password)
44+
except imaplib.IMAP4.error:
45+
sys.exit(1)
46+
47+
print rv, data
48+
49+
rv, mailboxes = M.list()
50+
rv, data = M.select(EMAIL_FOLDER)
51+
52+
if rv == 'OK':
53+
54+
rv, data = M.search(None, "ALL")
55+
if rv != 'OK':
56+
M.close()
57+
sys.exit(1)
58+
59+
for num in data[0].split():
60+
rv, data = M.fetch(num, '(RFC822)')
61+
if rv != 'OK':
62+
M.close()
63+
sys.exit(1)
64+
65+
msg = email.message_from_string(data[0][1])
66+
decode = email.header.decode_header(msg['Subject'])[0]
67+
subject = unicode(decode[0])
68+
if subject == "red":
69+
time.sleep(1.0)
70+
pixels[0] = red
71+
out.write(pixels)
72+
time.sleep(1.0)
73+
random.shuffle(pixels)
74+
pixels[0] = black
75+
out.write(pixels)
76+
if subject == "blue":
77+
time.sleep(1.0)
78+
pixels[0] = blue
79+
out.write(pixels)
80+
time.sleep(1.0)
81+
random.shuffle(pixels)
82+
pixels[0] = black
83+
out.write(pixels)
84+
if subject == "green":
85+
time.sleep(1.0)
86+
pixels[0] = green
87+
out.write(pixels)
88+
time.sleep(1.0)
89+
random.shuffle(pixels)
90+
pixels[0] = black
91+
out.write(pixels)
92+
if subject == "black":
93+
time.sleep(1.0)
94+
pixels[0] = black
95+
out.write(pixels)
96+
time.sleep(1.0)
97+
random.shuffle(pixels)
98+
pixels[0] = black
99+
out.write(pixels)
100+
if subject == "orange":
101+
time.sleep(1.0)
102+
pixels[0] = orange
103+
out.write(pixels)
104+
time.sleep(1.0)
105+
random.shuffle(pixels)
106+
pixels[0] = black
107+
out.write(pixels)
108+
if subject == "yellow":
109+
time.sleep(1.0)
110+
pixels[0] = yellow
111+
out.write(pixels)
112+
time.sleep(1.0)
113+
random.shuffle(pixels)
114+
pixels[0] = black
115+
out.write(pixels)
116+
if subject == "purple":
117+
time.sleep(1.0)
118+
pixels[0] = purple
119+
out.write(pixels)
120+
time.sleep(1.0)
121+
random.shuffle(pixels)
122+
pixels[0] = black
123+
out.write(pixels)
124+
if subject == "teal":
125+
time.sleep(1.0)
126+
pixels[0] = teal
127+
out.write(pixels)
128+
time.sleep(1.0)
129+
random.shuffle(pixels)
130+
pixels[0] = black
131+
out.write(pixels)
132+
133+
M.store(num, '+FLAGS', '\\Deleted')
134+
M.expunge()
135+
M.close()
136+
time.sleep(1.0)
137+
random.shuffle(pixels)
138+
out.write(pixels)
139+
M.logout()

animations/crowdsource/manifest.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name":"Crowdsource",
3+
"description":"Email [email protected] to change the lights!",
4+
"creator":"Milan Dasgupta"
5+
}

0 commit comments

Comments
 (0)