Example #1
0
def calcEntries():
    today = datetime.today()
    
    count = 5
    dates = []
    maxDate = []
    
    if K4CG_ACTIVE:
        k4cg = list(rrule(MONTHLY, count=count, byweekday=TH(1), dtstart=today, wkst=MO))
        for dateEntry in k4cg:
            dates.append(k4cgEntry(dateEntry))
            maxDate.append(dateEntry)

    if FABLAB_ACTIVE:
        fablab = list(rrule(MONTHLY, count=count, byweekday=TU(3), dtstart=today, wkst=MO))
        for dateEntry in fablab:
            dates.append(fablabEntry(dateEntry))
            maxDate.append(dateEntry)

    if NERDBERG_ACTIVE:
        if len(maxDate) == 0:
            maxDate.append(today + timedelta(weeks=12))
        ical_string = urllib.request.urlopen("https://kalender.nerdberg.de/events.ics").read()
        calendar = icalendar.Calendar.from_ical(ical_string)
        events = recurring_ical_events.of(calendar).between(today, max(maxDate))
        for event in events:
            if event['Summary'] == "Chaostreff":
                dates.append(nerdbergEntry(event['dtstart'].dt.replace(tzinfo=None)))

    dates.sort(key=lambda entry: entry.date)
    return dates
Example #2
0
 def test_monthly_month_nweekday(self):
     rule = rrule(MONTHLY,
                  bymonth=(1, 3),
                  byweekday=(TU(1), TH(-1)),
                  dtstart=datetime.datetime(1997, 9, 2, 9, 0))
     vrecurr = utils.build_rrule_from_dateutil_rrule(rule)
     vRecur(vrecurr).to_ical().decode(
     ) == 'FREQ=MONTHLY;BYDAY=+1TU,-1TH;BYMONTH=1,3'
Example #3
0
 def test_daily_by_month_nweekday(self):
     rule = rrule(DAILY,
                  count=3,
                  bymonth=(1, 3),
                  byweekday=(TU(1), TH(-1)),
                  dtstart=datetime.datetime(1997, 9, 2, 9, 0))
     vrecurr = utils.build_rrule_from_dateutil_rrule(rule)
     vRecur(vrecurr).to_ical().decode(
     ) == 'FREQ=DAILY;COUNT=3;BYDAY=TU,TH;BYMONTH=1,3'
 def test_monthly_nweekday(self):
     rule = rrule(
         MONTHLY,
         count=3,
         byweekday=(TU(1), TH(-1)),
         dtstart=datetime.datetime(1997, 9, 2, 9, 0),
     )
     vrecurr = utils.build_rrule_from_dateutil_rrule(rule)
     vRecur(vrecurr).to_ical().decode(
     ) == "FREQ=MONTHLY;COUNT=3;BYDAY=+1TU,-1TH"
Example #5
0
        return template % (dateString, self.location, self.time)


def k4cgEntry(date: datetime):
    return Entry(date, 'K4CG', '19:30 - 22:00')


def fablabEntry(date: datetime):
    return Entry(date, 'Fablab Region Nürnberg', '19:30 - 22:00')


today = date.today()

count = 5
dates = []

k4cg = list(
    rrule(MONTHLY, count=count, byweekday=TH(1), dtstart=today, wkst=MO))
for dateEntry in k4cg:
    dates.append(k4cgEntry(dateEntry))

fablab = list(
    rrule(MONTHLY, count=count, byweekday=TU(3), dtstart=today, wkst=MO))
for dateEntry in fablab:
    dates.append(fablabEntry(dateEntry))

dates.sort(key=lambda entry: entry.date)

for dateEntry in dates:
    print(dateEntry.asHTML())