In [3]:
import requests
import smtplib
from time import sleep
from numpy import random
import pandas as pd
In [7]:
courses = [
('matthew.annam.ho@gmail.com','ECE','340','56895'),
('maho3@illinois.edu','CS','498','65685')
]
courses = pd.read_csv('courses.csv', dtype={'Course': str,'CRN': str})
courses.to_csv('courses.csv',index=False)
courses
Out[7]:
In [3]:
def alert(row):
ADDR = "dummymattho@gmail.com"
passw = "dummyaccount"
content = (row['Dept']+ ' ' + row['Course'] + ', CRN: '
+ row['CRN'] + ', is available \n\nIt may not be immediately apparent on Course Explorer, as that site only refreshes every 20 min.')
mail = smtplib.SMTP('smtp.gmail.com',587)
mail.ehlo()
mail.starttls()
mail.login(ADDR,passw)
mail.sendmail(ADDR, row['Email'],content)
mail.close()
print("Sent update to:")
print row
In [8]:
while True:
courses = pd.read_csv('courses.csv', dtype={'Course': str,'CRN': str})
for index, row in courses.iterrows():
a = requests.get('http://courses.illinois.edu/cisapp/explorer/schedule/2017/spring/'
+ row['Dept'] +'/' + row['Course'] + '/' + row['CRN']+'.xml',
auth=()).text
if u'Closed' in a:
print(row['Dept'] +' ' + row['Course'] + ': closed')
courses.loc[row.name,'Open'] = 0
elif (u'null' in a) or (u'Error' in a):
print(row['Dept'] +' ' + row['Course'] + ': XML RETRIEVAL ERROR')
else:
print(row['Dept'] +' ' + row['Course'] + ': OPEN')
if row['Open'] == 0:
alert(row)
courses.loc[row.name,'Open'] = 1
sleep(15*random.poisson(20))
In [ ]:
In [20]:
for index, row in courses.iterrows():
a = requests.get('http://courses.illinois.edu/cisapp/explorer/schedule/2017/spring/'
+ row['Dept'] +'/' + row['Course'] + '/' + row['CRN']+'.xml',
auth=()).text
if u'Closed' in a:
print(row['Dept'] +' ' + row['Course'] + ': closed')
courses.loc[row.name,'Open'] = 3
elif (u'null' in a) or (u'Error' in a):
print(row['Dept'] +' ' + row['Course'] + ': XML RETRIEVAL ERROR')
else:
print(row['Dept'] +' ' + row['Course'] + ': OPEN')
alert(row)
In [18]:
courses.loc[row.name,'Open'] = 3
In [21]:
courses
Out[21]:
In [ ]:
In [ ]:
In [23]:
m = re.search(r'(?<= \<script type="text/javascript"\>) \w+',str(r.text))
m.group(0)
In [25]:
x = page.find('script',type='text/javascript')
In [38]:
import requests
import smtplib
from time import sleep
def alert():
ADDR = 'DANK@NUGS.COM'
content = ("340 (CRN 56895) is open")
mail = smtplib.SMTP('smtp.gmail.com',587)
mail.ehlo()
mail.starttls()
mail.login(ADDR,'EMAIL PASSWORD HERE')
mail.sendmail(ADDR,ADDR,content)
mail.close()
print("Sent")
sleep(60*10)
while True:
a = requests.get('http://courses.illinois.edu/cisapp/explorer/schedule/2017/spring/ECE/340/56895.xml', auth=()).text
if u'Closed' in a:
print('closed')
else:
print('OPEN: 56895')
alert()
sleep(60*5)
In [8]:
import smtplib
In [4]:
a = requests.get('http://courses.illinois.edu/cisapp/explorer/schedule/2017/spring/ECE/340/56895.xml', auth=()).text
In [10]:
ADDR = 'matthew.annam.ho@gmail.com'
content = ("340 (CRN 56895) is open")
mail = smtplib.SMTP('smtp.gmail.com',587)
mail.ehlo()
mail.starttls()
mail.login(ADDR,'pass11Word!')
mail.sendmail(ADDR,ADDR,content)
mail.close()