diff --git a/README.md b/README.md index d8fcb364033e3ab584f082043d0c0a4eb73ee14b..4314cf0161ba79adeb82d69225a9d66883329ac6 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,43 @@ Kleines Helper-Tool. Im Grunde erstellt es Regeltermine, für den Chaotikum-Kalender. -Das sind Makrdown Dateien, das ist ohne Skript einfach anstrengend. \ No newline at end of file +Das sind Makrdown Dateien, das ist ohne Skript einfach anstrengend. + +## Open Space +Jeden Mittwoch 19:00 to 23:59:59 aber nicht zwischen oder am 24.12 und 1.1 + +## Plenum +Zweiter Donnerstag des Monats, außer November, da dritter. + +## OSM +Vierter donnerstag in ungeraden monaten + +## Bits und Bäume +Jeden zweiten Dienstag im Monat um 18:31... + +## FFHL-Orga +Quartalsweise am 3. Donnerstag im zweiten Monat des Quartals, also Februar, Mai, ... + +## NooK +Zweiter freitag im November (und der darauf folgende Samstag) + +## Fünf Minuten Termine +Zweiter Mittwoch im Januar, April, September und Dezember + +## Somerfest +Der erste Samstag nach dem 10. Mai. 15:00 bis 23:59 + +## Tag des offenen Hackspaces +https://wiki.hackerspaces.org/International_Open_Hackerspace_Day +The International Open Hackerspace Day is happening every last Saturday of March. + +## Congress +27.12 bis 30.12 + +## NooK-Orga +Dritter Montag jeden zweiten Monat von januar bis Mai, dann monatlich von Juni bis September +Oktober jeden Montag + +## CTF +Jeden zweiten Dienstag. Am 02.07.2024 war ein CTF, wir rechnen also von dort. +Wenn der Termin zwischen den 23.12 und 01.01 (jeweils inklusive fällt) gibt es keinen Termin \ No newline at end of file diff --git a/eventgenutils.py b/eventgenutils.py index 81cd214eb8702e797ca237fff5d4ad997f733e2d..ae5dde7b9c25a8027c4a32c91a729cc9ac061c67 100644 --- a/eventgenutils.py +++ b/eventgenutils.py @@ -46,6 +46,13 @@ def is_wednesday(_date_candidate): def is_nth_monday_of_month(_date_candidate, _n): return is_nth_xday_of_month(_date_candidate, _date_candidate.year, _date_candidate.month, _n, MON) +def is_monday(_date_candidate): + wd = _date_candidate.weekday() + return wd == MON; + +def is_wednesday(_date_candidate): + wd = _date_candidate.weekday() + return wd == WED def is_nth_tuesday_of_month(_date_candidate, _n): return is_nth_xday_of_month(_date_candidate, _date_candidate.year, _date_candidate.month, _n, TUE) @@ -126,6 +133,8 @@ def is_equal_month(_date_candidate): def is_january(_date_candidate): return _date_candidate.month == 1 +def is_february(_date_candidate): + return _date_candidate.month == 3 def is_march(_date_candidate): return _date_candidate.month == 3 diff --git a/main.py b/main.py index 3d8330426bf7db43b176a2a80bd9f6b73d846721..b9e73c8409d9151f6f779409ab42b27a4d249884 100644 --- a/main.py +++ b/main.py @@ -23,13 +23,14 @@ BITSUNDBAEUME = True # jeden zweiten Dienstag im Monat um 18:31... FFHLORGA = True -# jeden dritten Donnerstag im Monat 19:00 bis 22:00 Uhr +# quartalsweise am 3. Donnerstag im zweiten Monat des Quartals, also Februar, Mai, ... NOOK = True # zweiter freitag im November (und der darauf folgende Samstag) +# FÜNF MINUTEN TERMINE +# Zweiter Mittwoch im januar, April, september und dezember FUENF_MIN_TERMINE = True -# Üblicherweise Zweiter Mittwoch im ersten Monat des Quartals SOMMERFEST = True # Üblicherweise der erste Samstag nach dem 10 Mai. 15:00 bis 23:59 @@ -51,6 +52,7 @@ GETTING_SPACE_CLEAN = False # NOOK ORGA # Dritter Montag jeden zweiten Monat von januar bis Mai, dann monatlich von Juni bis September +# Oktober jeden Montag NOOK_ORGA = True # CTF @@ -58,6 +60,10 @@ NOOK_ORGA = True # Wenn der Termin zwischen den 23.12 und 01.01 (jeweils inklusive fällt) gibt es keinen Termin CTF = True +# Video Setup Intro +# unklar +WED_VIDEO_SETUP = False + ################################################# # Year to create events for ################################################# @@ -103,7 +109,9 @@ def is_bits_und_baeume(_date_candidate): def is_ffhl(_date_candidate): - if utils.is_nth_thursday_of_month(_date_candidate, 3): + if utils.is_nth_thursday_of_month(_date_candidate, 3) and ( + utils.is_february(_date_candidate) or utils.is_may(_date_candidate) or utils.is_august( + _date_candidate) or utils.is_november(_date_candidate)): return True return False @@ -113,12 +121,20 @@ def is_nook(_date_candidate): def is_fuenf_min(_date_candidate): - if utils.is_april(_date_candidate) or utils.is_july(_date_candidate) or utils.is_october(_date_candidate): + if utils.is_january(_date_candidate) or utils.is_april(_date_candidate) or utils.is_september( + _date_candidate) or utils.is_december(_date_candidate): if utils.is_nth_wednesday_of_month(_date_candidate, 2): return True return False +def is_wed_video_setup(_date_candidate): + if utils.is_april(_date_candidate) or utils.is_july(_date_candidate) or utils.is_october(_date_candidate): + if utils.is_nth_wednesday_of_month(_date_candidate, 1): + return True + return False + + def is_sommerfest(_date_candidate): return utils.first_saturday_after_may_10th(_date_candidate) @@ -142,7 +158,8 @@ def is_getting_space_clean(_date_candidate): def is_nook_orga(_date_candidate): - return utils.is_third_monday_of_month_and_uneven_month_before_june_or_before_september(_date_candidate) + return utils.is_third_monday_of_month_and_uneven_month_before_june_or_before_september(_date_candidate) or ( + utils.is_monday(_date_candidate) and utils.is_october(_date_candidate)) def is_ctf(_date_candidate): @@ -183,6 +200,10 @@ def create_fuenf_min(_date): utils.create_event("5min", _date, start_hour=20, end_hour=21) +def create_wed_video_setup(_date): + utils.create_event("openspacevideosetup", _date, start_hour=19, end_hour=20) + + def create_sommerfest(_date): utils.create_event("sommerfest", _date, start_hour=15) @@ -273,5 +294,9 @@ while date_to_check <= datetime.datetime.strptime(str(YEAR) + "-12-31", utils.da result = is_ctf(date_to_check) if result: create_ctf(date_to_check) + if WED_VIDEO_SETUP: + result = is_wed_video_setup(date_to_check) + if result: + create_wed_video_setup(date_to_check) date_to_check += datetime.timedelta(days=1) diff --git a/openspacevideosetup.txt b/openspacevideosetup.txt new file mode 100644 index 0000000000000000000000000000000000000000..dba3ab7ff62872c57e1e3816b4ccbec44c08f34f --- /dev/null +++ b/openspacevideosetup.txt @@ -0,0 +1,17 @@ +--- +layout: [eventcal] +title: "Geräte-Intro: Das Video-Setup" +eventdate: <EVENTSTART> +eventend: <EVENTEND> +#https://www.uuidgenerator.net/ +uid: <UUID> +contact: info@chaotikum.org +locations: + - Augenprüfraum + - Wartezimmer + - Lager + - Confy Zone +sets: + - video +short: "Einmal im Quartal könnt ihr euch beim Open-Space das Video-Setup erklären lassen. Ansonsten auf nachfrage." +---