このスクリプトは,ToDoistに毎日ランダムに選ばれた「筋肉体操」をタスクとして追加するためのスクリプトです.
AWS Lambdaでの動作を想定しています. 1回の動作時間が10sec程と多少長いですが,毎日1回,128MBの設定で動作させても無料枠に全然問題なく収まるはずです.
このLambda関数が実行されると,ToDoist上にタスクが1件追加されます.
タスクのnote部分には,YoutubeにあるNHK公式が配信している「筋肉体操」から,ランダムにいくつかが選択されてリンクが記載されます. 同一種目が複数回・複数の内容選択されることはありません.
デフォルトのタイトルは「トレーニング」となっており,プロジェクト「Inbox」に追加されます. これらはlambda_function.pyの19-21行目にある
project = user.get_project("Inbox")
task = project.add_task("トレーニング",date=limit)
部分を書き換えることで変更できます.
追加されるタスクの締め切り時刻は初期値で22:15となっていますが,lambda_function.pyの11行目にある
limit = todo.ConvTime(22,15)
の部分を書き換えることで変更可能です. 以下のように,締め切り時刻HH:MMならば
limit = todo.ConvTime(HH,MM)
と書き換えてください.
- このスクリプトをダウンロード
git clone [email protected]:thvinmei/AddTodoist_TrainingTask.git M2T
- pytodoistをスクリプトと同じディレクトリにインストール
cd M2T
pip install -t .
- zip圧縮
zip -r upload.zip *
-
AWS Lambdaの管理画面にログインし,関数を作成
- "一から作成"を選択
- ランタイムに"Python3.7"を選択
- 名前,ロールは任意で.
-
関数マネジメント画面での設定
-
トリガーの設定
- トリガーに"CloudWatch Events"を追加
- cron式などで1日一回動作するように設定する.
# 毎日12:00JST(03:00UTC)に動かす場合 cron(0 3 * * ? *)
- 「保存」
-
Lambda関数のアップロード
- コードエントリタイプで「.zipファイルをアップロード」を選択
- 先程作成した,upload.zipを選択
- 「保存」
-
ハンドラをlambda_function.Training2Todoistに設定する
-
環境変数の設定
- キーにTODOIST_API_TOKEN,値にToDoistのアカウント設定ページから取得できるAPIトークンを入力
- キーにNUMBER_OF_TRAININGS,値に1日あたりのトレーニング種目数を入力
- ただし,この値が種目数である4以上になることを想定していません.(ただし,種目数を増やした場合はその限りではないです.)
- また,この値は整数値で入力が必要です.
-
「保存」
-
テストイベントはAmazon CloudWatchをイベントテンプレートとして作成してください.
テスト実行して,ToDoist側にタスクが追加できていれば完了です.