make_calendar.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from bot import database
  2. from bot.sql import sql_all_events
  3. file_name = "calendar.ics"
  4. async def make(file):
  5. # # Собираем мероприятия с базы
  6. db = database.Database()
  7. data = db.sql_fetchall(sql_all_events())
  8. event_list = []
  9. for i in range(0, len(data)):
  10. e_id = data[i]['id']
  11. owner = data[i]['name']
  12. description = data[i]['description']
  13. date = data[i]['e_date']
  14. start = data[i]['e_start']
  15. end = data[i]['e_end']
  16. start = start.replace(":", "") + "00"
  17. end = end.replace(":", "") + "00"
  18. n_start = f"{date.strftime('%Y%m%d')}T{start}"
  19. n_end = f"{date.strftime('%Y%m%d')}T{end}"
  20. event = {f"BEGIN:VEVENT\n"
  21. f"UID:{e_id}@moodle.tomtit-tomsk.ru\n"
  22. f"SUMMARY:{owner}\n"
  23. f"DESCRIPTION:{owner}\\n{description}\n"
  24. f"LOCATION:405\n"
  25. f"DTSTART;TZID=US-Eastern:{n_start}\n"
  26. f"DTEND;TZID=US-Eastern:{n_end}\n"
  27. f"END:VEVENT\n"}
  28. event_list.append(event)
  29. with open(file, 'w',encoding="utf-8") as f:
  30. f.write("START:VCALENDAR\n")
  31. for elem in event_list:
  32. f.write("".join(elem))
  33. f.write("END:VCALENDAR")
  34. f.close()
  35. return True