ToDo 管理とその他さまざまな反応をする slackbot
-
plugins/hello.py
@bot hello
: bot 宛の 'hello を含む文字列' に対して「こんにちは」と返す
-
plugins/fizzbuzz.py
@bot fizzbuzz {数字}
: bot 宛の 'fizzbuzz {数字}' に対して Fizz Buzz ゲームの反応
-
plugins/yonmoku.py
@bot yonmoku
: 5*5の盤面で先に四目並べたほうが勝利のゲームを開始する vs Com@bot yonmoku easy
: 5*5の盤面で先に四目並べたほうが勝利のゲームを開始する vs Com(weak)@bot yonmoku set '場所'
: 進行中のゲームに対し'場所'に自分の駒を置く!set '場所'
: 進行中のゲームに対し'場所'に自分の駒を置く
-
plugins/listen.py
- チャンネル内で 'what' を含む文字列の発言に対して「??」と返す
- ! で始まるものをコマンドとみなし、todo.pyと同様の内容を実行する(todoの入力は省略)
-
plugins/todo.py
@bot todo add 'タイトル' [締切]
: ToDo 内容を登録する@bot todo list
: 参照した user の ToDo の未完了の一覧を表示する@bot todo list all
: 参照した user の ToDo の一覧を表示する@bot todo list -1
: (暫定コマンド) 参照した user の ToDo の未完了、期限切れの一覧を表示する@bot todo delete 'id'
: 指定したidを削除する@bot todo delete_secret 'id'
: 指定したidを削除し、その内容も初期化する@bot todo cancel_announcement 'id'
: 指定した全体への告知を削除する@bot todo announce 'タイトル' '日時' '備考'
: 全員共通のことについて、全体への告知を作成する@bot todo finish 'id(スペースを開けて複数可能)'
: 課題の状態を未から済に変更する@bot todo reset
: ToDo の DB をリセットする@bot todo search '検索文字列'
: 検索文字列がtitleに含まれている場合、その内容を表示する@bot todo finish 'id'
: statusが未のものを済にする@bot todo example
: todoの入力方法の例を表示する@bot todo help
: helpを表示する@bot todo show 'id'
: 指定したidの詳細を表示する
id | title | limit_at | update_at | status | noticetime | user | deleted |
---|---|---|---|---|---|---|---|
1 | test1 | 2020/04/30 23:59 | 2020/04/01 13:10 | 済 | 0 | S2340A7K6Q4 | 0 |
2 | test2 | 2020/07/30 7:05 | 2020/06/01 17:00 | 未 | 3 | S2340A7K6Q4 | 1 |
多くなったので入りきらないが、以下は上のテーブルの右につながる。
subject | note | importance |
---|---|---|
science | None | 中 |
None | あ | 大 |
- 上のuseridは存在しないものである
add(title, limit_at)
: title と limit_at (有効期限) を登録add(title)
: title を無期限の有効期限として登録list()
: 参照した user の ToDo DB のデータを 一覧して文字列を返すlist_all()
: Todo DB のデータを一覧した文字列を返すreset()
: ToDo DB の内容を削除し,空のデータベースを作成add_dict(data)
:列名をkey、データの値をvalueとするdictのデータをToDo DBに登録 #6 に詳細ありdict_list()
ToDo DB の各データをそれぞれdictにして、dictのリストを返す #6 に詳細ありselect_id(id)
指定したidのデータをdictにして返す #6 に詳細ありclean()
主に開発時、テーブルの列の更新、不正なデータの削除を行うchange_id(id, column, value)
指定したidのデータの値を変更するsearch(column, text)
columnの値にtextが含まれる場合そのデータをlist形式(要素はdict形式)で返すdelete_id(id, userid)
指定したデータを削除する。他のユーザのものは消せない。
getmsginfo(message)
:messageからユーザー情報を取得datetrans(limit_at, now, mode=0)
:userが入力した文字列(limit_at)を既定の形式に変換するlimit_datetime(assignment, mode=0)
:datetime型でlimit_atを返すautostatus(assignment, now, mode=0)
:assignmentの期限と現在時刻からstatusを判定postMessage(text, attachments, channel, username="お知らせ", icon_emoji)
:messageをpostupdateMessage(text, attachments, ts, channel, username="お知らせ", icon_emoji)
:messageを編集noticetimeSet(limit_at:datetime, now)
:期限から残り通知回数を定めるorder(data,column)
:データ列のソートの順序を定めるする
-
test_regex.py
- 正規表現の確認プログラム
- 正規表現のパターンを入力し,その後,文字列を入力するとパターンにマッチしているかどうかを判定
python test_regex.py
-
test_tododb.py
- tododb.py のテストプログラム
- tododb.py で定義した関数をテストするためのプログラム