-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils.py
77 lines (63 loc) · 2.29 KB
/
utils.py
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
import icalendar
from datetime import datetime, timedelta
import sys
MONITORS = []
# Print iterations progress
def printProgressBar(iteration, total, prefix='>progress: ', suffix='complete',
decimals=1, length=50, fill='#'):
percent = ("{0:." +
str(decimals) + "f}").format(100 * (iteration / float(total)))
filledLength = int(length * iteration // total)
bar = fill * filledLength + '-' * (length - filledLength)
sys.stdout.write('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix))
# Print New Line on Complete
if iteration == total:
print("")
def getCal(filename):
''' return Calendar Object from .ics File'''
g = open(filename, 'rb')
gcal = icalendar.Calendar.from_ical(g.read())
return gcal
def printComponentName(gcal):
''' Find all components from Calendar'''
print '>>>component list:'
for component in gcal.walk():
print component.name
def printEventList(gcal):
''' Get all details of all scheduled VEVENTs'''
print '>>>event list'
for component in gcal.walk():
if component.name == "VEVENT":
print component.get('summary')
def printEventDetail(gcal):
''' Get all details of all scheduled VEVENTs'''
print '>>>event list'
for component in gcal.walk():
if component.name == "VEVENT":
print component.get('summary')
print component.get('dtstart').dt
print component.get('dtend').dt
print component.get('dtstamp').dt
if component.get('rrule') is not None:
print component.get('rrule').iteritems()
def addEventToCal(gcal=None, sd=None, ed=None, sa=None, ea=None):
if not gcal:
return None
event = icalendar.Event()
'''Add event to gcal'''
event.add('summary', datetime.strftime(datetime.now(), '%c'))
if (sd and ed):
b = datetime.now() + timedelta(0, sd)
event.add('dtstart', b)
event.add('dtend', b + timedelta(0, ed))
elif (sa and ea):
event.add('dtstart', sa)
event.add('dtend', ea)
else:
return gcal
event.add('dtstamp', datetime.now())
event['uid'] = datetime.strftime(datetime.now(), '%c').strip()
event.add('priority', 5)
gcal.add_component(event)
return gcal