使用 Python 連接 Todoist 與 Pomotodo
學會碼代碼之後最大的好處,大概就是可以自己定製自己平時工作、學慣用的軟體了。
這樣一來,自己之前常用的軟體、服務就可以通過自己寫的膠水腳本連接起來,生活方便很多啊。
最近我在寫的一個膠水腳本,完美連接了我平時每天都要用的兩個效率工具,Todoist 和 Pomotodo 。
Todoist ,顧名思義,是用來管理自己todo-list的一個工具,雖然也沒覺得用了這玩意效率提高多少,不過倒是減少了不少焦慮感(不會老想著自己是不是還有什麼事沒做了)
Pomotodo,是一個我常用的番茄鍾軟體,同上,也沒提高多少效率,只是有點心理安慰作用(原來這幾天都有幹活啊)
我之前的習慣是用todoist 整理自己所有的todo,分配deadline,然後用Pomotodo記錄每天都幹了啥,什麼時候幹活了什麼時候在做白日夢這些,最後晚上深刻檢討一下自己,儘管第二天肯定還是照舊...
寫這個膠水腳本之前,我的日常大概是每天從Todoist 複製 todo 出來,粘貼進 Pomotodo , 然後周而復始...
煩人倒是其次,遇到這種多層次的Todo,想粘貼全還是挺麻煩的...
後來發現Pomotodo 和 Todoist 都有API (話說@小明大神,你們api的bug API delete todo 錯誤 啥時候能修復呢),就花了幾天,寫了一個膠水腳本,做到了:
1.一旦在Todoist 中分配一個任務到今天,就把這個todo完整的任務鏈計算出來,加上標籤,同步到Pomotodo裡面。
2.Pomotodo 中標記Todo 為完成後,在Todoist 中也完成這個Todo.
上圖中的「看供給側與證券化的論文」這個Todo,經過這種計算後,得到結果就是這樣:
這種膠水語言寫起來說簡單也簡單,說複雜也挺複雜,大概分以下幾步吧:
- 從Todoist 搞到所有的project 和 Todo 的內容和結構
- 用函數把todo樹拍扁平成一個個的list,從而生成包含subtodo的完整Todo
- 使用Pomotodo 的api,把這些完整的Todo 添加到pomotodo裡面。
- 使用todoist 的api 把pomotodo里完成的todo標記為完成
實現以上四步的完整代碼見:
https://github.com/tsauliu/todoist_pomotodo
懶得看代碼的同學其實填上todoist 和pomotodo 的密匙就可以用了。
當然有vps的同學,也可以用apache 做python cgi webhook...做到todoist 這邊一變化就更新pomotodo:
這個圖其實還挺好玩的,可以拖動時間軸做到顯示不同日期的dues。有興趣的同學可以看這:
http://tsauliu.com/demo/plans.html
通過假期這幾天寫這個膠水腳本,作為一隻金融狗,我深刻的認識到了自己與職業碼農的遙遠差距,於是搬磚搬的更安心、更踏實了。
這麼看來,雖然浪費了一點點休息時間,但也不失為一件好事呢。
推薦閱讀:
※黃哥推薦學習Python 10本好書。
※Scrapy對接Selenium
※Python筆記 · 一個多線程知乎用戶爬蟲的實現
※Python從零開始系列連載(26)——Python特色數據類型(函數)(上)
※Python數據分析及可視化實例之Pandas函數速查表