こんにちは、みやびのです。
今回はSlackbotでカレンダー表示する方法について紹介します。
具体的には以下の2点についてです。
・Pythonでカレンダーを表示する方法
・Slackbotでカレンダー表示する方法
Pythonはデフォルトでcalendarライブラリが入っているのでカレンダーは比較的簡単に実装可能です。
サクッとできるので挑戦してみてください。
PythonでSlackbotを作る基本については「SlackbotをPythonで作成しよう」をお読みください。
目次
Pythonでカレンダーを表示する方法
前述の通りデフォルトでcalendarライブラリが入っているのでimportするだけで使えます。
「calendar.month()」メソッドを使えば一ヶ月の予定を表示可能。
以下、使用例です。
1 2 | import calendar print(calendar.month(2019,8)) |
◆実行結果
1 2 3 4 5 6 7 | August 2019 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
calendar.prcal()メソッドを使用すれば1年分の予定を表示できます。
以下、実行例です。
1 | print(calendar.prcal(2019)) |
◆実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 2019 January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 1 2 3 1 2 3 7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 25 26 27 28 29 30 31 April May June Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 5 1 2 8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9 15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16 22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23 29 30 27 28 29 30 31 24 25 26 27 28 29 30 July August September Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 1 8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8 15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29 30 October November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 1 2 3 1 7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 30 31 |
Slackbotでカレンダー表示する方法
上記を踏まえてSlackbotの応答に実装します。
そのままだとレイアウトが崩れるので「`」でくくりましょう。
1 2 3 4 5 6 7 8 9 10 | from slackbot.bot import respond_to import calendar @respond_to('^カレンダーテスト$') def calendar_test(message): # アウトプットデータ作成 output = '```' + calendar.month(2019, 8) + '```' message.send(output) |
もう一工夫して今日の日付からカレンダーを表示する方法もあります。(結果は同じです。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from slackbot.bot import respond_to import calendar from datetime import datetime @respond_to('^カレンダーテスト$') def calendar_test(message): # 今日の日付から年月を取得 today = datetime.today() month = today.month year = today.year # カレンダー表示 output = '```' + calendar.month(year, month) + '```' message.send(output) |
以上、Slackbotでカレンダーを表示する方法でした。
終わりに
Pythonには元々calendarライブラリが入っているのでカレンダー系のアプリは割と簡単に作れそうですね。
もちろん画面に表示する方法について勉強する必要がありますが。
Slackbotであれば今回の方法で紹介した通り非常に簡単に実装できます。
calendarライブラリには他の表示方法もあるのでSlackbotを使いながらいろいろ試してみてください。