import datetime import eventgenutils as utils ################################################# # set true if you want to generate files for that event type ################################################# OPENSPACE = False # every wednesday 19:00 to 23:59:59 but not between (and including) 24.12 and 1.1 REINIGUNG = False # wednesday from 09:00 to 18:00 PLENUM = False # second thursday of the month, except in november, where it is the third OSM = False # vierter donnerstag in ungeraden monaten SWK = False # manchmal am 1. Donnerstag. Aber oft auch nicht. BITSUNDBAEUME = True # jeden zweiten Dienstag im Monat um 18:31... FFHLORGA = False # jeden dritten Donnerstag im Monat 19:00 bis 22:00 Uhr NOOK = False # zweiter freitag im November (und der darauf folgende Samstag) FUENF_MIN_TERMINE = False # Üblicherweise Zweiter Mittwoch im ersten Monat des Quartals SOMMERFEST = False # Üblicherweise der erste Samstag nach dem 10 Mai. 15:00 bis 23:59 TAG_DES_OFFENEN_HACKSPACES = False # https://wiki.hackerspaces.org/International_Open_Hackerspace_Day # The International Open Hackerspace Day is happening every last Saturday of March. MOINC3 = False # Congress. MAUS_TUEROEFFNER_TAG = False # Der Maus Türöffner Tag ist immer am Tag der Deutschen Einheit GETTING_SPACE_CLEAN = False # Erster Montag des Monats, außer das ist der 01.01 oder 01.05, dann der zweite Montag dieser Monate ################################################# # Year to create events for ################################################# YEAR = 2024 # Change to generate for another year def is_open_space(_date_candidate): _md = _date_candidate.day _mo = _date_candidate.month if utils.is_january(_date_candidate) and _md == 1: return False if utils.is_december(_date_candidate) and _md > 23: return False if not utils.is_wednesday(_date_candidate): return False return True def is_plenum(_date_candidate): if not utils.is_november(_date_candidate) and utils.is_nth_thursday_of_month(_date_candidate, 2): return True if utils.is_november(_date_candidate) and utils.is_nth_thursday_of_month(_date_candidate, 3): return True return False def is_reinigung(_date_candidate): if utils.is_wednesday(_date_candidate): return True return False def is_osm(_date_candidate): if utils.is_equal_month(_date_candidate) and utils.is_nth_thursday_of_month(_date_candidate, 4): return True return False def is_bits_und_baeume(_date_candidate): if utils.is_nth_tuesday_of_month(_date_candidate, 2): return True return False def is_ffhl(_date_candidate): if utils.is_nth_thursday_of_month(_date_candidate, 3): return True return False def is_nook(_date_candidate): return utils.is_november(_date_candidate) and utils.is_nth_friday_of_month(_date_candidate, 2) 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_nth_wednesday_of_month(_date_candidate, 2): return True return False def is_sommerfest(_date_candidate): return utils.first_saturday_after_may_10th(_date_candidate) def is_tag_des_offenen_hackspaces(_date_candidate): return utils.last_saturday_in_march(_date_candidate) def is_moin_c3(_date_candidate): _md = _date_candidate.day return utils.is_december(_date_candidate) and _md == 27 def is_maus_tueroeffner_tag(_date_candidate): _md = _date_candidate.day return utils.is_october(_date_candidate) and _md == 3 def is_getting_space_clean(_date_candidate): return utils.is_first_monday_of_month_except_january_an_may_if_monday_is_first(_date_candidate) def create_open_space(_date): utils.create_event("openspace", _date, start_hour=19) def create_plenum(_date): utils.create_event("plenum", _date, start_hour=19, end_hour=20, end_minute=00) def create_reinigung(_date): utils.create_event("reinigung", _date, start_hour=9, end_hour=18, end_minute=00) def create_osm(_date): utils.create_event("osm", _date, start_hour=19, end_hour=22, end_minute=00) def create_bits_und_baeume(_date): utils.create_event("bitsundbaeume-treffen", _date, start_hour=18, start_minute=31, end_hour=22, end_minute=00) def create_ffhl(_date): utils.create_event("ffhl-orga", _date, start_hour=18, end_hour=22, end_minute=00) def create_nook(_date): utils.create_event("nook", _date, start_hour=17, end_hour=22, add_days=1) def create_fuenf_min(_date): utils.create_event("5min", _date, start_hour=20, end_hour=21) def create_sommerfest(_date): utils.create_event("sommerfest", _date, start_hour=15) def create_tag_des_offenen_hackspaces(_date): utils.create_event("tagderoffenenhackspaces", _date, start_hour=15, end_hour=20, end_minute=00) def create_moin_c3(_date): utils.create_event("moinc3", _date, add_days=3) def create_getting_space_clean(_date): utils.create_event("getting-space-clean", _date, start_hour=18, start_minute=30, end_hour=20, end_minute=00) def create_maus_tueroeffner_tag(_date): utils.create_event("maus", _date, start_hour=14, end_hour=19, end_minute=00) date_to_check = datetime.datetime.strptime(str(YEAR) + "-01-01", utils.date_format) while date_to_check <= datetime.datetime.strptime(str(YEAR) + "-12-31", utils.date_format): if OPENSPACE: result = is_open_space(date_to_check) if result: create_open_space(date_to_check) if PLENUM: result = is_plenum(date_to_check) if result: create_plenum(date_to_check) if REINIGUNG: result = is_reinigung(date_to_check) if result: create_reinigung(date_to_check) if OSM: result = is_osm(date_to_check) if result: create_osm(date_to_check) if BITSUNDBAEUME: result = is_bits_und_baeume(date_to_check) if result: create_bits_und_baeume(date_to_check) if FFHLORGA: result = is_ffhl(date_to_check) if result: create_ffhl(date_to_check) if NOOK: result = is_nook(date_to_check) if result: create_nook(date_to_check) if FUENF_MIN_TERMINE: result = is_fuenf_min(date_to_check) if result: create_fuenf_min(date_to_check) if SOMMERFEST: result = is_sommerfest(date_to_check) if result: create_sommerfest(date_to_check) if TAG_DES_OFFENEN_HACKSPACES: result = is_tag_des_offenen_hackspaces(date_to_check) if result: create_tag_des_offenen_hackspaces(date_to_check) if MOINC3: result = is_moin_c3(date_to_check) if result: create_moin_c3(date_to_check) if MAUS_TUEROEFFNER_TAG: result = is_maus_tueroeffner_tag(date_to_check) if result: create_maus_tueroeffner_tag(date_to_check) if GETTING_SPACE_CLEAN: result = is_getting_space_clean(date_to_check) if result: create_getting_space_clean(date_to_check) date_to_check += datetime.timedelta(days=1)