Exemple #1
0
def events(day=0):
    today, tomorrow = today_times(day)

    events = today_events(day=day)
    alldays = []
    endings = []
    todays = []
    for event in events:
        event = event_times(event)
        if event['start'] <= today and event['end'] >= tomorrow:
            # all day!
            alldays.append(event)
        elif event['start'] <= today and event['end'] <= tomorrow:
            # multi-day event (like an all-day) that we’re not in the middle of
            endings.append(event)
        else:
            todays.append(event)

    out = []
    for event in alldays:
        out.append(format_event(prefs['dates']['all_day'], event))

    out.append(misc.thinhrule() + '\n')

    # TODO: this output is so massively unclear. nobody who hasnt written this
    # program will ever know what it means
    for event in endings:
        out.append(format_event(prefs['dates']['ending'], event))

    out.append(misc.thinhrule() + '\n')

    for event in todays:
        out.append(format_event(misc.hoursminutes(event['start']), event))

    return ''.join(out).rstrip()
Exemple #2
0
def today_classes(day=0):
    class_cals = calendar_match(prefs['calendar']['class_pat'])

    classes = []
    for cal in class_cals:
        classes.extend(today_events(cal['id'], day=day))

    out = []
    for event in classes:
        event = event_times(event)
        if '_daily_report_processed' not in event:
            event['summary'] += extformat(' ' + prefs['dates']['ending'],
                                          event,
                                          time=misc.hoursminutes(event['end']))
            event['_daily_report_processed'] = True
        out.append(format_event(misc.hoursminutes(event['start']), event))

    return ''.join(out).rstrip()
Exemple #3
0
def suntimes(location=prefs['weather']['location']):
    risetime, settime = sunrise(location), sunset(location)
    daylight = settime - risetime

    risefmt = extformat(prefs['weather']['sun']['rise_format'],
                        sunrise=misc.hoursminutes(risetime, fillchar=''))

    setfmt = extformat(prefs['weather']['sun']['set_format'],
                       sunset=misc.hoursminutes(settime, fillchar=''))

    dayfmt = extformat(prefs['weather']['sun']['daylight_format'],
                       daylight=misc.formatdelta(daylight))

    return extformat(
        prefs['weather']['sun']['format'],
        sunrise=risefmt,
        sunset=setfmt,
        daylight=dayfmt,
    )
Exemple #4
0
def today_work(day=0):
    work_cals = calendar_match(prefs['calendar']['work_pat'])

    shifts = []
    for cal in work_cals:
        shifts.extend(today_events(cal['id'], day=day))

    out = []
    for shift in shifts:
        shift = event_times(shift)
        out.append(format_event(misc.hoursminutes(shift['start']), shift))

    return ''.join(out).rstrip()
Exemple #5
0
def format_event(time, event):
    today, tomorrow = today_times()

    leader = ' ' + prefs['vert'] + ' '
    if time == prefs['dates']['all_day'] and event['duration'].days > 1:
        time = extformat(prefs['dates']['all_day'], event)
        event['summary'] += (' (day ' +
                             str((today - event['start']).days + 1) + ' of ' +
                             str((event['end'] - event['start']).days) + ')')
    elif time == prefs['dates']['ending']:
        time = extformat(prefs['dates']['ending'],
                         event,
                         time=misc.hoursminutes(event['end']))

    return misc.format_left(event['summary'],
                            leader=leader,
                            firstline=time + leader)
Exemple #6
0
def now_hm(fillchar=''):
    return misc.hoursminutes(datetime.datetime.now(), fillchar=fillchar)