Esempio n. 1
0
def _construct_event(info,
                     locale,
                     defaulttimelen=60,
                     defaultdatelen=1,
                     description=None,
                     location=None,
                     categories=None,
                     repeat=None,
                     until=None,
                     alarm=None,
                     **kwargs):
    info = eventinfofstr(' '.join(info),
                         locale,
                         adjust_reasonably=True,
                         localize=False)
    if description is not None:
        info["description"] = description
    event = new_event(locale=locale,
                      location=location,
                      categories=categories,
                      repeat=repeat,
                      until=until,
                      alarms=alarm,
                      **info)
    return event
Esempio n. 2
0
def new_from_args(collection, calendar_name, conf, dtstart=None, dtend=None,
                  summary=None, description=None, allday=None, location=None,
                  categories=None, repeat=None, until=None, alarms=None,
                  timezone=None, format=None, env=None):
    """Create a new event from arguments and add to vdirs"""
    try:
        event = utils.new_event(
            locale=conf['locale'], location=location, categories=categories,
            repeat=repeat, until=until, alarms=alarms, dtstart=dtstart,
            dtend=dtend, summary=summary, description=description, timezone=timezone,
        )
    except ValueError as error:
        raise FatalError(error)
    event = Event.fromVEvents(
        [event], calendar=calendar_name, locale=conf['locale'])

    try:
        collection.new(event)
    except ReadOnlyCalendarError:
        raise FatalError(
            'ERROR: Cannot modify calendar "{}" as it is read-only'.format(calendar_name)
        )

    if conf['default']['print_new'] == 'event':
        if format is None:
            format = conf['view']['event_format']
        echo(event.format(format, dt.datetime.now(), env=env))
    elif conf['default']['print_new'] == 'path':
        path = os.path.join(
            collection._calendars[event.calendar]['path'],
            event.href
        )
        echo(path)
    return event
Esempio n. 3
0
def new_from_args(collection, calendar_name, conf, dtstart=None, dtend=None,
                  summary=None, description=None, allday=None, location=None,
                  categories=None, repeat=None, until=None, alarms=None,
                  timezone=None, format=None, env=None):

    try:
        event = utils.new_event(
            locale=conf['locale'], location=location, categories=categories,
            repeat=repeat, until=until, alarms=alarms, dtstart=dtstart,
            dtend=dtend, summary=summary, description=description, timezone=timezone,
        )
    except ValueError as e:
        logger.fatal('ERROR: ' + str(e))
        sys.exit(1)
    except FatalError:
        sys.exit(1)
    event = Event.fromVEvents(
        [event], calendar=calendar_name, locale=conf['locale'])

    try:
        collection.new(event)
    except ReadOnlyCalendarError:
        logger.fatal(
            'ERROR: Cannot modify calendar "{}" as it is read-only'.format(calendar_name))
        sys.exit(1)

    if conf['default']['print_new'] == 'event':
        if format is None:
            format = conf['view']['event_format']
        echo(event.format(format, datetime.now(), env=env))
    elif conf['default']['print_new'] == 'path':
        path = collection._calnames[event.calendar].path + event.href
        echo(path)
    return event
Esempio n. 4
0
def new_from_args(collection,
                  calendar_name,
                  conf,
                  dtstart=None,
                  dtend=None,
                  summary=None,
                  description=None,
                  allday=None,
                  location=None,
                  categories=None,
                  repeat=None,
                  until=None,
                  alarms=None,
                  timezone=None,
                  format=None,
                  env=None):

    try:
        event = utils.new_event(
            locale=conf['locale'],
            location=location,
            categories=categories,
            repeat=repeat,
            until=until,
            alarms=alarms,
            dtstart=dtstart,
            dtend=dtend,
            summary=summary,
            description=description,
            timezone=timezone,
        )
    except ValueError as e:
        logger.fatal('ERROR: ' + str(e))
        sys.exit(1)
    except FatalError:
        sys.exit(1)
    event = Event.fromVEvents([event],
                              calendar=calendar_name,
                              locale=conf['locale'])

    try:
        collection.new(event)
    except ReadOnlyCalendarError:
        logger.fatal(
            'ERROR: Cannot modify calendar "{}" as it is read-only'.format(
                calendar_name))
        sys.exit(1)

    if conf['default']['print_new'] == 'event':
        if format is None:
            format = conf['view']['event_format']
        echo(event.format(format, datetime.now(), env=env))
    elif conf['default']['print_new'] == 'path':
        path = collection._calnames[event.calendar].path + event.href
        echo(path)
    return event
Esempio n. 5
0
def _construct_event(info, locale,
                     defaulttimelen=60, defaultdatelen=1, description=None,
                     location=None, categories=None, repeat=None, until=None,
                     alarm=None, **kwargs):
    info = eventinfofstr(' '.join(info), locale, default_timedelta=str(defaulttimelen) + 'm',
                         adjust_reasonably=True, localize=False)
    if description is not None:
        info["description"] = description
    event = new_event(locale=locale, location=location,
                      categories=categories, repeat=repeat, until=until,
                      alarms=alarm, **info)
    return event