furmeet_events_self/timetable_parser/__init__.py

41 lines
1.3 KiB
Python

#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
import datetime
import hashlib
import json
import pytz
from ics import Calendar, Event
from .cli import parseArguments
def main():
args = parseArguments()
should_transpose = args.column.value == 'time'
table = args.format[args.origin[args.path]].parse(should_transpose)
table.interpret_lang(
'EN,ES,PT'.split(','),
args.lang,
args.content.as_index()
)
arg_ts = (args.year, args.month, args.day)
table.interpret_line_labels_as_time_series(arg_ts)
events = table.get_column_sequences()
calendar = Calendar()
for ((start, end), place, (name, description, language)) in events:
ev = json.dumps((int(start.timestamp()), int(end.timestamp()),
place, name, description, language))
evh = hashlib.md5(ev.encode('ascii')).hexdigest()
start = args.timezone.localize(start)
end = args.timezone.localize(end)
calendar_event = Event(name=name, begin=start,
end=end, location=place, uid=f'{evh}@table2ics')
if description != '':
calendar_event.description = description
if language != '':
calendar_event.classification = language
calendar.events.add(calendar_event)
print(calendar)