-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtools.py
More file actions
109 lines (95 loc) · 3.37 KB
/
tools.py
File metadata and controls
109 lines (95 loc) · 3.37 KB
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import datetime
def repetitiveEventToThisWeek(events):
for ev in events:
if ev.repetitive == True:
ev.repetitive = False
# get yesterday
yesterday = datetime.datetime.today() - datetime.timedelta(days=1)
ev.date = next_weekday(yesterday, ev.repetitive_day)
if ev.time_specified:
time_parts = ev.repetitive_time.split(':')
ev.date = ev.date.replace(hour=int(time_parts[0]), minute=int(time_parts[1]))
ev.date = ev.date.strftime("%Y-%m-%d %H:%M:%S")
return events
def sortEvents(events):
events.sort(key=lambda item:item.date)
return events
def selectEvents(events, week, group):
# consider that the first prev saturday is now
previous_saturday = datetime.datetime.now()
next_saturday = next_weekday(previous_saturday, 6)
for i in range(0, week - 1):
previous_saturday = next_saturday
next_saturday = next_weekday(previous_saturday, 6)
#no_repetitive_events = repetitiveEventToThisWeek(events)
selected_events = []
for ev in events:
if ev.repetitive == False:
if week == -1:
if group != "all":
if group in ev.group.split(',') or ev.group == "all":
selected_events.append(ev)
else:
selected_events.append(ev)
else:
date_formatted = datetime.datetime.strptime(
ev.date, "%Y-%m-%d %H:%M:%S")
if previous_saturday < date_formatted < next_saturday:
if group != "all":
if group in ev.group.split(',') or ev.group == "all":
selected_events.append(ev)
else:
selected_events.append(ev)
else:
if group != "all":
if group in ev.group.split(',') or ev.group == "all":
selected_events.append(ev)
else:
selected_events.append(ev)
selected_events = repetitiveEventToThisWeek(selected_events)
selected_events = sortEvents(selected_events)
return selected_events
def next_weekday(d, weekday): # 0 = Monday, 1=Tuesday, 2=Wednesday...
days_ahead = weekday - d.weekday()
if days_ahead <= 0: # Target day already happened this week
days_ahead += 7
return d + datetime.timedelta(days_ahead)
def translateDM(text):
for eng, ro in {
"Monday": "Luni",
"Tuesday": "Marti",
"Wednesday": "Miercuri",
"Thursday": "Joi",
"Friday": "Vineri",
"Saturday": "Sambata",
"Sunday": "Duminica",
"January": "Ian",
"February": "Feb",
"March": "Mar",
"April": "Apr",
"May": "Mai",
"June": "Iun",
"July": "Iul",
"August": "Aug",
"September": "Sep",
"October": "Oct",
"November": "Noi",
"December": "Dec"
}.items():
text = text.replace(eng, ro)
return text
def dayNameFromWeekday(weekday):
if weekday == 0:
return "Monday"
if weekday == 1:
return "Tuesday"
if weekday == 2:
return "Wednesday"
if weekday == 3:
return "Thursday"
if weekday == 4:
return "Friday"
if weekday == 5:
return "Saturday"
if weekday == 6:
return "Sunday"