Skip to content
Snippets Groups Projects
main.py 7.02 KiB
Newer Older
Lukas Ruge's avatar
Lukas Ruge committed
import datetime
Lukas Ruge's avatar
Lukas Ruge committed
import eventgenutils as utils
Lukas Ruge's avatar
Lukas Ruge committed

#################################################
# set true if you want to generate files for that event type
#################################################
Lukas Ruge's avatar
Lukas Ruge committed
OPENSPACE = False
Lukas Ruge's avatar
Lukas Ruge committed
# every wednesday 19:00 to 23:59:59 but not between (and including) 24.12 and 1.1
Lukas Ruge's avatar
Lukas Ruge committed
REINIGUNG = False
Lukas Ruge's avatar
Lukas Ruge committed
# wednesday from 09:00 to 18:00
Lukas Ruge's avatar
Lukas Ruge committed
PLENUM = False
Lukas Ruge's avatar
Lukas Ruge committed
# second thursday of the month, except in november, where it is the third
Lukas Ruge's avatar
Lukas Ruge committed
OSM = False
Lukas Ruge's avatar
Lukas Ruge committed
# vierter donnerstag in ungeraden monaten
Lukas Ruge's avatar
Lukas Ruge committed
SWK = False
# manchmal am 1. Donnerstag. Aber oft auch nicht.
Lukas Ruge's avatar
Lukas Ruge committed
BITSUNDBAEUME = True
# jeden zweiten Dienstag im Monat um 18:31...
FFHLORGA = False
Lukas Ruge's avatar
Lukas Ruge committed
# jeden dritten Donnerstag im Monat 19:00 bis 22:00 Uhr
Lukas Ruge's avatar
Lukas Ruge committed
NOOK = False
# zweiter freitag im November (und der darauf folgende Samstag)
Lukas Ruge's avatar
Lukas Ruge committed
FUENF_MIN_TERMINE = False
Lukas Ruge's avatar
Lukas Ruge committed
# Ü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.
Lukas Ruge's avatar
Lukas Ruge committed
MOINC3 = False
Lukas Ruge's avatar
Lukas Ruge committed
# Congress.
MAUS_TUEROEFFNER_TAG = False
# Der Maus Türöffner Tag ist immer am Tag der Deutschen Einheit
Lukas Ruge's avatar
Lukas Ruge committed
GETTING_SPACE_CLEAN = False
Lukas Ruge's avatar
Lukas Ruge committed
# Erster Montag des Monats, außer das ist der 01.01 oder 01.05, dann der zweite Montag dieser Monate
Lukas Ruge's avatar
Lukas Ruge committed

#################################################
# Year to create events for
#################################################
Lukas Ruge's avatar
Lukas Ruge committed
YEAR = 2024  # Change to generate for another year
Lukas Ruge's avatar
Lukas Ruge committed


def is_open_space(_date_candidate):
Lukas Ruge's avatar
Lukas Ruge committed
    _md = _date_candidate.day
    _mo = _date_candidate.month
    if utils.is_january(_date_candidate) and _md == 1:
Lukas Ruge's avatar
Lukas Ruge committed
        return False
    if utils.is_december(_date_candidate) and _md > 23:
Lukas Ruge's avatar
Lukas Ruge committed
        return False
Lukas Ruge's avatar
Lukas Ruge committed
    if not utils.is_wednesday(_date_candidate):
Lukas Ruge's avatar
Lukas Ruge committed
        return False
    return True


def is_plenum(_date_candidate):
Lukas Ruge's avatar
Lukas Ruge committed
    if not utils.is_november(_date_candidate) and utils.is_nth_thursday_of_month(_date_candidate, 2):
Lukas Ruge's avatar
Lukas Ruge committed
        return True
Lukas Ruge's avatar
Lukas Ruge committed
    if utils.is_november(_date_candidate) and utils.is_nth_thursday_of_month(_date_candidate, 3):
Lukas Ruge's avatar
Lukas Ruge committed
        return True
    return False


def is_reinigung(_date_candidate):
    if utils.is_wednesday(_date_candidate):
Lukas Ruge's avatar
Lukas Ruge committed
        return True
    return False


def is_osm(_date_candidate):
Lukas Ruge's avatar
Lukas Ruge committed
    if utils.is_equal_month(_date_candidate) and utils.is_nth_thursday_of_month(_date_candidate, 4):
Lukas Ruge's avatar
Lukas Ruge committed
        return True
    return False


def is_bits_und_baeume(_date_candidate):
Lukas Ruge's avatar
Lukas Ruge committed
    if utils.is_nth_tuesday_of_month(_date_candidate, 2):
Lukas Ruge's avatar
Lukas Ruge committed
        return True
    return False


def is_ffhl(_date_candidate):
Lukas Ruge's avatar
Lukas Ruge committed
    if utils.is_nth_thursday_of_month(_date_candidate, 3):
Lukas Ruge's avatar
Lukas Ruge committed
        return True
    return False

Lukas Ruge's avatar
Lukas Ruge committed

def is_nook(_date_candidate):
Lukas Ruge's avatar
Lukas Ruge committed
    return utils.is_november(_date_candidate) and utils.is_nth_friday_of_month(_date_candidate, 2)
Lukas Ruge's avatar
Lukas Ruge committed


def is_fuenf_min(_date_candidate):
Lukas Ruge's avatar
Lukas Ruge committed
    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):
Lukas Ruge's avatar
Lukas Ruge committed
            return True
    return False


Lukas Ruge's avatar
Lukas Ruge committed
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)


Lukas Ruge's avatar
Lukas Ruge committed
def create_open_space(_date):
    utils.create_event("openspace", _date, start_hour=19)
Lukas Ruge's avatar
Lukas Ruge committed


def create_plenum(_date):
    utils.create_event("plenum", _date, start_hour=19, end_hour=20, end_minute=00)
Lukas Ruge's avatar
Lukas Ruge committed


def create_reinigung(_date):
    utils.create_event("reinigung", _date, start_hour=9, end_hour=18, end_minute=00)
Lukas Ruge's avatar
Lukas Ruge committed


def create_osm(_date):
    utils.create_event("osm", _date, start_hour=19, end_hour=22, end_minute=00)
Lukas Ruge's avatar
Lukas Ruge committed


def create_bits_und_baeume(_date):
    utils.create_event("bitsundbaeume-treffen", _date, start_hour=18, start_minute=31, end_hour=22, end_minute=00)
Lukas Ruge's avatar
Lukas Ruge committed


def create_ffhl(_date):
    utils.create_event("ffhl-orga", _date, start_hour=18, end_hour=22, end_minute=00)
Lukas Ruge's avatar
Lukas Ruge committed

Lukas Ruge's avatar
Lukas Ruge committed

def create_nook(_date):
    utils.create_event("nook", _date, start_hour=17, end_hour=22, add_days=1)
Lukas Ruge's avatar
Lukas Ruge committed


def create_fuenf_min(_date):
    utils.create_event("5min", _date, start_hour=20, end_hour=21)
Lukas Ruge's avatar
Lukas Ruge committed
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):
Lukas Ruge's avatar
Lukas Ruge committed
    utils.create_event("moinc3", _date, add_days=3)
Lukas Ruge's avatar
Lukas Ruge committed


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)


Lukas Ruge's avatar
Lukas Ruge committed
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):
Lukas Ruge's avatar
Lukas Ruge committed
    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)
Lukas Ruge's avatar
Lukas Ruge committed
    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)
Lukas Ruge's avatar
Lukas Ruge committed
    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)
Lukas Ruge's avatar
Lukas Ruge committed

    date_to_check += datetime.timedelta(days=1)