以前、Python で Todoist の「今日のタスク」を取得・表示するスクリプトを紹介しましたが、今回はそれのバージョンアップです。

前回の記事では「今日のタスク」を一括表示していましたが、今回のプログラムでは Todoist のプロジェクトごとに表示するようになっています。

ご参考まで。

#This code displays "today's tasks" by project. 
import todoist
import datetime

def GetTodaysTasks(items):
    tasks = []
    now = datetime.datetime.now()
    search_date_str = now.strftime('%Y-%m-%d')
    
    for item in items:
        due = item['due']
        if due is not None:
            if due['date'] == search_date_str:
                tasks.append(item)
    
    return tasks

def GetProjectDict(projects):
    dict = {}
    for prj in projects:
        dict[prj['id']] = prj['name']
    return dict

def PrintTasksByProject(tasks, project_dict):
    for k, v in project_dict.items():
        items = []
        for task in tasks:
            if (task['project_id']==k and task['checked']==0):
                items.append(task['content'])

        if len(items)>0:
            print('* '+v)
            for item in items:
                print(item)
            print('')

    
if __name__=='__main__':

    api = todoist.TodoistAPI('your token')
    response = api.sync()
    items = api.state['items']
    projects = api.state['projects']
    
    todays_tasks = GetTodaysTasks(items)
    project_dict = GetProjectDict(projects)
    PrintTasksByProject(todays_tasks, project_dict)

スポンサーリンク

Twitterでフォローしよう