Browse Source

renamed main.py and get_classes to better names

partial
rlbr 7 years ago
parent
commit
c14b8653fd
  1. 0
      __init__.py
  2. 52
      body_create.py
  3. 0
      bot.py
  4. 3
      scraper.py
  5. 27
      test.py

main.py → __init__.py

52
body_create.py

@ -43,45 +43,29 @@ def rrule_former(class_obj):
ret_str = str(ret).split('\n')[-1]
ret_str=re.sub(r'(UNTIL=[^;]+)',r'\1Z',ret_str)
return 'RRULE:{}'.format(ret_str)
def create_body(_class):
if _class.time_range:
def create_body(class_obj,is_lab = False):
if not is_lab:
lab_body = None
if class_obj.lab:
lab_body = create_body(class_obj.lab,True)
if class_obj.time_range:
body = {
# "kind": "calendar#event",
}
body['recurrence'] = [rrule_former(_class)]
body['start'] = dateTime(datetime.datetime.combine(_class.date_range[0],_class.time_range[0]))
body['end'] = dateTime(datetime.datetime.combine(_class.date_range[0],_class.time_range[1]))
body['summary'] = _class.title
body['description'] = 'location: {}'.format(_class.location)
body['recurrence'] = [rrule_former(class_obj)]
body['start'] = dateTime(datetime.datetime.combine(class_obj.date_range[0],class_obj.time_range[0]))
body['end'] = dateTime(datetime.datetime.combine(class_obj.date_range[0],class_obj.time_range[1]))
body['summary'] = class_obj.title
body['description'] = 'location: {}'.format(class_obj.location)
body['location'] = LOCATION
body['reminders'] = {'useDefault':True}
return body
if is_lab:
return body
else:
return body,lab_body
def json_dump(obj):
with open('classes.json','w') as file:
json.dump(obj,file)
def test_rrule():
#test
now = datetime.datetime.now()
from munch import Munch
test_obj = Munch(
days=[1,3,5],
time_range=[
now.time(),
(now+datetime.timedelta(seconds=50*60)).time()
],
date_range=[
now.date(),
(now+datetime.timedelta(days=20)).date()
],
)
test_result = rrule_former(test_obj)
return locals()
def test_class2body():
with open('classes.pkl','rb') as file:
classes = pickle.load(file)
test_result = list(filter(bool,map(create_body,classes)))
return test_result
if __name__ == "__main__":
json_dump(test_class2body())

get_classes.py → bot.py

3
scraper.py

@ -2,6 +2,7 @@ from bs4 import BeautifulSoup as BS
import datetime
import re
from operator import sub
def dateparse(datetime_str):
date = '%b %d, %Y'
time = '%I:%M %p'
@ -11,11 +12,13 @@ def dateparse(datetime_str):
return datetime.datetime.strptime(datetime_str,time)
days = [None,'M','T','W','R','F',None]
simp_exceptions = ['Grade Mode']
def datetime2date_time(dtime,mode):
if mode == 'date':
return datetime.date(dtime.year,dtime.month,dtime.day)
elif mode == 'time':
return datetime.time(dtime.hour,dtime.minute,dtime.second)
def seconds_from_midnight(t):
return t.hour*60**2+ t.minute*60+t.second

27
test.py

@ -0,0 +1,27 @@
from body_create import rrule_former,create_body
def test_rrule():
#test
now = datetime.datetime.now()
from munch import Munch
test_obj = Munch(
days=[1,3,5],
time_range=[
now.time(),
(now+datetime.timedelta(seconds=50*60)).time()
],
date_range=[
now.date(),
(now+datetime.timedelta(days=20)).date()
],
)
test_result = rrule_former(test_obj)
return locals()
def testclass_obj2body():
with open('classes.pkl','rb') as file:
classes = pickle.load(file)
test_result = list(filter(bool,map(create_body,classes)))
return test_result
if __name__ == "__main__":
json_dump(testclass_obj2body())
Loading…
Cancel
Save