Initial
This commit is contained in:
commit
f05522a2d6
1
icalendar
Submodule
1
icalendar
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 194338629370ada3a2978c42bbe85529f8012d3d
|
92
main.py
Normal file
92
main.py
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
import uuid
|
||||||
|
import datetime
|
||||||
|
import os
|
||||||
|
import argparse
|
||||||
|
import calendar
|
||||||
|
|
||||||
|
import pytz
|
||||||
|
import icalendar
|
||||||
|
|
||||||
|
TZ = pytz.timezone('Europe/Paris')
|
||||||
|
|
||||||
|
WEEKDAY = {
|
||||||
|
0: "Lundi",
|
||||||
|
1: "Mardi",
|
||||||
|
2: "Mercredi",
|
||||||
|
3: "Jeudi",
|
||||||
|
4: "Vendredi",
|
||||||
|
5: "Samedi",
|
||||||
|
6: "Dimanche"
|
||||||
|
}
|
||||||
|
|
||||||
|
SCHEDULE = {
|
||||||
|
"day1": {
|
||||||
|
"summary": "jour 8h",
|
||||||
|
"start": (8,0),
|
||||||
|
"end": (16,15) },
|
||||||
|
"day2": {
|
||||||
|
"summary": "jour 9h",
|
||||||
|
"start": (9,0),
|
||||||
|
"end": (18,0) },
|
||||||
|
"morning": {
|
||||||
|
"summary": "matin",
|
||||||
|
"start": (6,30),
|
||||||
|
"end": (14,15) },
|
||||||
|
"afternoon": {
|
||||||
|
"summary": "Apres-midi",
|
||||||
|
"start": (13,45),
|
||||||
|
"end": (21,15),}
|
||||||
|
}
|
||||||
|
|
||||||
|
def get_weekday(year, month, day):
|
||||||
|
wd = calendar.weekday(i[0],i[1],i[2])
|
||||||
|
return WEEKDAY[wd]
|
||||||
|
|
||||||
|
def generate_ical(date, schedule_info):
|
||||||
|
uid = uuid.uuid4()
|
||||||
|
cal = icalendar.Calendar()
|
||||||
|
cal.add('prodid', '-//Schedule generator//')
|
||||||
|
cal.add('version', '2.0')
|
||||||
|
|
||||||
|
event = icalendar.Event()
|
||||||
|
event.add('uid', uid)
|
||||||
|
event.add('summary', schedule_info["summary"])
|
||||||
|
event.add('dtstart', datetime.datetime(date[0],date[1],date[2],\
|
||||||
|
schedule_info['start'][0], schedule_info['start'][1],tzinfo=TZ))
|
||||||
|
|
||||||
|
event.add('dtend', datetime.datetime(date[0],date[1],date[2],\
|
||||||
|
schedule_info['end'][0], schedule_info['end'][1],tzinfo=TZ))
|
||||||
|
event.add('dtstamp', datetime.datetime.now(tz=TZ))
|
||||||
|
|
||||||
|
cal.add_component(event)
|
||||||
|
return (uid, cal)
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("month", type=int, help="choose month to create or edit as integer")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
schedule = []
|
||||||
|
|
||||||
|
switch_case = {
|
||||||
|
"j": SCHEDULE["day1"],
|
||||||
|
"k": SCHEDULE["day2"],
|
||||||
|
"m": SCHEDULE["morning"],
|
||||||
|
"a": SCHEDULE["afternoon"]
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in calendar.Calendar().itermonthdays3(2019, args.month):
|
||||||
|
if i[1] == args.month:
|
||||||
|
while True:
|
||||||
|
txt = "%s %s\n(J)our 8h, (K)Jour 9h, (M)atin, (A)pres-midi, (R)epos:" % (get_weekday(*i), i[2])
|
||||||
|
choose = input(txt)
|
||||||
|
if choose in switch_case.keys():
|
||||||
|
schedule.append((i, switch_case[choose]))
|
||||||
|
break
|
||||||
|
elif choose == 'r':
|
||||||
|
break
|
||||||
|
|
||||||
|
for evt in schedule:
|
||||||
|
(uid, cal) = generate_ical(*evt)
|
||||||
|
f = open('%s.ics' % uid, 'wb')
|
||||||
|
f.write(cal.to_ical())
|
||||||
|
f.close()
|
Loading…
x
Reference in New Issue
Block a user