Exemplo n.º 1
0
 def load():
     if not Config.get('cache_enabled'):
         return None
     if not os.path.exists(Config.get('cache')):
         return None
     with open(Config.get('cache'), 'r') as fd:
         return ResultSet.deserialize(fd.read())
Exemplo n.º 2
0
 def get_date(self):
     local_zone = tz.tzlocal()
     if self.due_date:
         if Config.get('time_offset'):
             dt = self.due_date.astimezone(local_zone) + timedelta(hours=Config.get('time_offset'))
             return dt.strftime(Config.get('output_date_format'))
         return self.due_date.astimezone(local_zone).strftime(Config.get('output_date_format'))
     return ''
Exemplo n.º 3
0
 def result_set(obj):
     if obj.name:
         print(
             "{}{}\n{}{}".format(
                 Config.color("filter"), obj.name, "".join("=" for _ in obj.name or ""), Config.color("endc")
             )
         )
     for task_set in obj.task_sets:
         Plain.task_set(task_set)
     if obj.tasks:
         Plain.task_set(obj.tasks)
Exemplo n.º 4
0
    def task(obj):
        indent = "  " * (int(obj.get("indent", "1")) - 1)
        prio = "  "
        if obj.priority and obj.priority != 1:
            prio = "!" * (obj.priority - 1)
        due = obj.get_date()
        if due:
            due += " "

        line = Plain.FORMAT["task"].format(
            c0=Config.color("endc"),
            c1=Config.color("content"),
            c2=Config.color("date"),
            c3=Config.color("project"),
            c4=Config.color("label"),
            c5=Config.color("priority"),
            indent=indent,
            priority=prio,
            content=obj.get("content"),
            project_name=obj.get("project_name"),  # nopep8
            label_names=obj.get("label_names"),
            due=due,
            taskid=obj.get("id"),
        )
        sys.stdout.write(line)
Exemplo n.º 5
0
def api_call(method, **options):
    options['token'] = Config.get('api_token')
    query_string = parse.urlencode(options)
    url = "{apiurl}/{method}?{query}".format(apiurl=API_URL,
                                             method=method,
                                             query=query_string)
    try:
        req = request.urlopen(url)
        content = req.read().decode('utf-8')
        return json.loads(content)

    except Exception as ex:
        print(ex)
Exemplo n.º 6
0
def command(args, options):
    cinfo = args and content_info(args, options) or {}
    formater = output.formaters[options.format]
    list_opts = {
        'filters': get_filters(options),
        'reverse': options.reverse,
        'order': ORDER_OPTIONS.get(options.order),
        'search': cinfo.get('merged'),
    }
    due_date = options.date and todoist_date(options.date) or None
    if options.configure:
        Config.configure()
    elif options.query:
        todoist.query(cinfo, options.query, output_engine=formater, **list_opts)  # nopep8
    elif options.all:
        todoist.query(cinfo, 'view all', output_engine=formater, **list_opts)
    elif options.archive:
        todoist.archive(cinfo, options.limit, options.date, options.project_name,  # nopep8
                        output_engine=formater, **list_opts)
    elif options.complete:
        todoist.complete_tasks(cinfo)
    elif options.add_task:
        todoist.add_task(cinfo, due_date)
    elif options.labels:
        todoist.list_labels(cinfo, info=options.info, reverse=options.reverse)
    elif options.projects:
        todoist.list_projects(cinfo, reverse=options.reverse)
    elif options.edit_id:
        todoist.edit_task(cinfo, options.edit_id, due_date)
    elif options.project_name:
        todoist.project_tasks(cinfo, options.project_name,
                              output_engine=formater, **list_opts)
    elif options.cached:
        todoist.list_cache(output_engine=formater)
    else:
        todoist.list_tasks(cinfo, due_date, output_engine=formater, **list_opts)  # nopep8
Exemplo n.º 7
0
 def save(self):
     if not Config.get('cache_enabled'):
         return None
     with open(Config.get('cache'), 'w') as fd:
         fd.write(self.serialize())