trelloにAPIでUdemyのレクチャーをカード化してみた
自分の個人タスク管理にも半年くらいTrelloを使っております。いわゆる「かんばん(kanban)ボード」ツールですが
これが結構良くて、タスクを見える化 → タスク消化 の流れをつくる事ができてます。
trelloの運用方法についても、今度書いておこうかな。
それはそうと、最近、Udemyで動画学習を始めまして(「これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)」)、
「この学習もtrelloで見える化して学習意欲あげたいな」と思ったわけです。
しかし、このAWSの講座レクチャーが300近くありまして、、、
「これは、、、コピペでtrelloカード化ですか!!!???」と森で祈っていたところ
否!!!!!「trelloにはAPIがあるのじゃ!!!!!」
と天が教えてくれましたので、
ということで今回はpython3(py-trello)を使ってUdemyのレクチャーをtrelloのカード化してみたメモです。
素人の所業ですのでご参考程度にどうぞ。
- 否!!!!!「trelloにはAPIがあるのじゃ!!!!!」
- 1. Trello API_key, token, api_secretの取得
- 2. ターゲットTrelloボードを調べる
- 3. ボード内のリストを取得
- 4. リストにカードを追加する
- 5. udemyのレクチャーリストをtrelloのカードにする
1. Trello API_key, token, api_secretの取得
api_key
まずは、Trello apiキーの取得です
https://trello.com/1/appKey/generate
にアクセスすると、「開発者向けAPIキー」という画面に遷移しますので apiキーをメモしておきます
token
次にtokenです
上記で取得したAPIキーを利用して下記URLへアクセスしアカウントへのアクセスを許可することで取得できます
これもメモしておきます
https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&name=Server%20Token&key={上記で取得したAPIキー}
api_secret
https://trello.com/1/appKey/generate の「OAuth」もメモしておきます
2. ターゲットTrelloボードを調べる
今回はpy-trelloを使っていきます
まずは、py-trelloをpipインストールします
pip install py-trello
py-trello 0.17.1
がインストールされました。
早速、ボードのリストを取得してみます
from trello import TrelloClient ### Key Token Secret client = TrelloClient( api_key="{取得したapi_key}", api_secret="{取得したapi_secret}", token="{取得したtoken}" ) print("ボード一覧→",client.list_boards())
を実行すると
ボード一覧→ [<Board 仕事用 Kanban Board>, <Board プライベート_kanban>]
こんな感じのボードリストが帰ってきます
3. ボード内のリストを取得
ボードリストが取得できたので、ターゲットにしたいボードをボードリストから選んで、ボード内のリストを取得します
target_board = client.list_boards()[1] #ターゲットボードは「プライベート_kanban」 print("リスト一覧→",target_board.list_lists())
結果はこんな感じ、これもリストが帰ってきます
リスト一覧→ [<List Done 1/25>, <List 作業中>, <List 今日>, <List 明日>, <List 今週>, <List 今月>, <List Done 1/11>, <List Dane 1/4>]
4. リストにカードを追加する
タイトルをつけて、カード追加
trello_card = target_board.list_lists()[1].add_card("カードのタイル")
説明欄の追加
作ったカードに説明を追加します
trello_card.set_description("カードの説明")
チェックリストの追加
作ったカードにチェックリストを追加します
created_checklist = trello_card.add_checklist("チェックリスト名",["チェック1", "チェック2", "チェック3"])
5. udemyのレクチャーリストをtrelloのカードにする
(ここからはほぼ、蛇足です)
udemyのレクチャーリストをtrelloのカードにしていきます
こんな感じのレクチャー一覧をUdemyからコピペで作りました
セクション1:まずは知ってみる 1. はじめに 7 小テスト1: アソシエイト試験お試しテストによるゴール確認 2. AWSのアカウント登録 5 3. AWSでサーバーを構築してみる① 10 4. AWSでサーバーを構築してみる② 2 5. 【Windows用】AWSでサーバーを構築してみる③ 2 6. 【MAC用】AWSでサーバーを構築してみる③ 5 7. EC2の削除 3 8. AWSを利用するためのツール① 3 9. AWSを利用するためのツール② 6 10. 【お願い】AWSの画面更新について 1 セクション2:Day1対応の実施 11. Day1対応の実施① 2 12. Day1対応の実施② 4 13. Day1対応の実施③ 2 14. Day1対応の実施④ 1 15. Day1対応の実施⑤ 7 16. Day1対応の実施⑥ 4 17. Day1対応の実施⑦ 2 18. Day1対応の実施⑧ 9 19. Day1対応の実施⑨ 1 20. Day1対応の実施⑩ 6 21. Day1対応の実施⑪ 9 22. S3バケットの削除について 1 セクション3:AWSとアソシエイト試験の概要 23. AWSの資格体系 10 24. アソシエイト試験概要 12 25. AWSのグローバルインフラ構成 20 26. AWSの全体像① 10 27. AWSの全体像② 8 28. AWSの全体像③ 11 29. 仮想化を理解する 9 30. クラウド基礎 15 31. AWSの意義 5 ・ ・ ・ 続く
含まれてる情報が
セクションタイトル、レクチャータイトル、レクチャーの時間(単位:分)
という感じ
レクチャーの時間が含まれてたのでtrelloのカードにするにあたって 以下のようなルールにしました。
- カードタイトルはセクション名にする
- チェックリストにレクチャー名を入れる
- 1つのカードに含まれるレクチャーの時間は25分とする
で、以下のようなcard_list
作りました
caed_list = [{'title': 'セクション1:まずは知ってみる 0', 'content_list': [{'c_title': '1. はじめに', 'r_time': '7'}, {'c_title': '小テスト1:', 'r_time': 'アソシエイト試験お試しテストによるゴール確認'}, {'c_title': '2. AWSのアカウント登録', 'r_time': '5'}, {'c_title': '3. AWSでサーバーを構築してみる①', 'r_time': '10'}, {'c_title': '4. AWSでサーバーを構築してみる②', 'r_time': '2'}, {'c_title': '5. 【Windows用】AWSでサーバーを構築してみる③', 'r_time': '2'}] }, {'title': 'セクション1:まず は知ってみる 1', 'content_list': [{'c_title': '6. 【MAC用】AWSでサーバーを構築してみる③', 'r_time': '5'}, {'c_title': '7. EC2の削除', 'r_time': '3'}, {'c_title': '8. AWSを利用するためのツール①', 'r_time': '3'}, {'c_title': '9. AWSを利用するためのツール②', 'r_time': '6'}, {'c_title': '10. 【お願い】AWSの画面更新について', 'r_time': '1'}]}, {'title': 'セク ション2:Day1対応の実施 0', 'content_list': [{'c_title': '11. Day1対応の実施①', 'r_time': '2'}, {'c_title': '12. Day1対 応の実施②', 'r_time': '4'}, {'c_title': '13. Day1対応の実施③', 'r_time': '2'}, {'c_title': '14. Day1対応の実施④', 'r_time': '1'}, {'c_title': '15. Day1対応の実施⑤', 'r_time': '7'}, {'c_title': '16. Day1対応の実施⑥', 'r_time': '4'}, {'c_title': '17. Day1対応の実施⑦', 'r_time': '2'}, {'c_title': '18. Day1対応の実施⑧', 'r_time': '9'}]}, ・ ・ ・ つづく ]
カードリストができたので、以下のようにして「今月」というリストに udemyレクチャカードをぶち込みます
### List 上記で調べたボードIDから調べたリスト listid_today = target_board.list_lists()[5] # 今日 listid_week = target_board.list_lists()[6] # 今週 listid_month = target_board.list_lists()[7]# 今月※今回のターゲット for card in card_list: # Card Name cardname = card["title"] desc = 'Udemyで動画学習をしよう!' trello_card = listid_month.add_card(cardname) trello_card.set_description(desc) print(trello_card) print(cardname) checklist = [] for c in card["content_list"]: checklist.append(c['c_title']) print(checklist) created_checklist = trello_card.add_checklist("APIで作ったチェックリスト",checklist)
結果はこんな感じです
以上です!!
これで、勉強頑張れるかなー
がんばるしかないのだー
Pikisuperstar - jp.freepik.com によって作成された time ベクトル Jcomp - jp.freepik.com によって作成された people 写真