|
|
|
@ -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} |
|
|
|
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()) |