- Chatbot for Slack of PyCon JP
- based on https://github.com/lins05/slackbot
コマンドの一覧と簡単な説明
-
$lgtm create URL (テキスト)
: 指定したURLの画像をもとにLGTM画像を生成する。テキストを指定するとそのテキストを描画する
-
$pycamp create (地域) (開催日) (コアスタッフJIRA) (現地スタッフJIRA) (講師のJIRA)
: pycamp のイベント用issueを作成する -
$pycamp summary
: 開催予定のpycampイベントの概要を返す -
$pycamp summary -party
: 開催予定のpycamp懇親会の概要を返す -
$pycamp count-staff
: pycampにスタッフやTAに2回以上参加した人を調べる -
$pycamp logo (地域)
: pycamp のイベント用ロゴを作成する
-
$github repos
: pyconjp organization のリポジトリ一覧を返す -
$github search keywords
: 指定されたキーワードにマッチするissueを返す -
$github code keywords
: 指定されたキーワードにマッチするコードを返す
-
$google keywords
: 指定したキーワードでgoogle検索した結果を返す -
$image keywords
: 指定したキーワードでgoogle画像検索した結果からランダムに返す
ユーザー管理
$gadmin user list
: ユーザーの一覧を返す$gadmin user insert (ユーザー) (名前) (名字)
: ユーザーを追加する$gadmin user delete (ユーザー)
: ユーザーを削除する(停止中のみ削除可)$gadmin user reset (ユーザー)
: ユーザーのパスワードをリセットする$gadmin user suspend (ユーザー)
: ユーザーを停止する(停止中にする)$gadmin user resume (ユーザー)
: ユーザーを再開する(アクティブにする)
メールのエイリアス管理
$gadmin alias list (ユーザ)
: ユーザーのエイリアスの一覧を返す$gadmin alias insert (ユーザ) (エイリアス)
: ユーザーにエイリアスを追加する$gadmin alias delete (ユーザ) (エイリアス)
: ユーザーからエイリアスを削除する
グループ管理
$gadmin group list
: グループの一覧を返す$gadmin group insert (グループ) (グループ名)
: 指定したグループを追加する$gadmin group delete (グループ)
: 指定したグループを削除する
グループのメンバー管理
-
$gadmin member list (グループ)
: 指定したグループのメンバー一覧を返す -
$gadmin member insert (グループ) (メール1) [(メール2...)]
: 指定したグループにメンバーを追加する -
$gadmin member delete (グループ) (メール1) [(メール2...)]
: 指定したグループからメンバーを削除する
-
$term (用語)
: 用語コマンドを作成する -
$term create (用語)
: 用語コマンドを作成する -
$term drop (用語)
: 用語コマンドを消去する -
$term search (キーワード)
: キーワードを含む用語コマンドの一覧を返す -
$term list
: 用語コマンドの一覧を返す -
$(用語)
: 用語コマンドに登録してある応答からランダムに一つ返す -
$(用語) add (応答)
: 用語コマンドに応答を追加する -
$(用語) del (応答)
: 用語コマンドから応答を削除する -
$(用語) pop
: 用語コマンドの最後に登録した応答を削除する -
$(用語) list
: 用語コマンドの応答一覧を返す -
$(用語) search (キーワード)
: 用語コマンドのうちキーワードを含む応答一覧を返す
> $term create 酒
コマンド `$酒` を作成しました。
`$酒 add (レスポンス)` でレスポンスを追加できます
> $酒 add ビール
コマンド `$酒` に `ビール` を追加しました
> $酒 add ワイン
コマンド `$酒` に `ワイン` を追加しました
> $酒
ビール
-
名前1 名前2++
: 指定された名前に +1 カウントする(感謝を伝えるインクリメント) -
名前1 名前2--
: 指定された名前に -1 カウントする -
$plusplus search (キーワード)
: 名前にキーワードを含む一覧を返す -
$plusplus delete (名前)
: カウントを削除する(カウント10未満のみ) -
$plusplus rename (変更前) (変更後)
: カウントする名前を変更する -
$plusplus merge (統合元) (統合先)
: 2つの名前のカウントを統合先の名前にまとめる
$drive [options] keywords
: 指定されたキーワードで Google ドライブを検索する$drive db update
: 検索用のフォルダ情報を更新する$drive db refresh
: 検索用のフォルダ情報を再構築する$drive help
: drive コマンドのヘルプを表示
$drive [-n] [-l LIMIT] [-a | -f FOLDER] [-t TYPE] keywords...`
オプション引数:
-n, --name ファイル名のみを検索対象にする(未指定時は全文検索)
-l LIMIT, --limit LIMIT
結果の最大件数を指定する(default: 10)
-f FOLDER, --folder FOLDER
検索対象のフォルダーを指定する(default: 2016)
-t TYPE, --type TYPE 検索対象のファイル種別を指定する
$manual
: マニュアルのURLを返す$manual keywords
: キーワードでマニュアルを検索するURLを返す$manual help
: manual コマンドのヘルプを表示- manual.py
SAR-123
: JIRAのissueの情報を返す$jira search keywords
$jira 検索 keywords
: 指定されたキーワードで検索(オープンのみ)$jira allsearch keywords
$jira 全検索 keywords
: 指定されたキーワードで検索(全ステータス)$jira assignee user
$jira 担当 user
: 指定されたユーザーが担当しているissueを返す$jira filter
$jira フィルター
: フィルターの一覧を返す- jira.py
$jira 検索 [-p PROJECT] [-c COMPONENT] [-l LABEL] [-s] [keywords ...]
$jira 全検索 [-p PROJECT] [-c COMPONENT] [-l LABEL] [-s] [keywords ...]
オプション引数:
-p PROJECT, --project PROJECT
検索対象のプロジェクトを指定する(default: SAR)
-c COMPONENT, --component COMPONENT
検索対象のコンポーネントを指定する
-l LABEL, --label LABEL
検索対象のラベルを指定する
-s, --summary 要約(タイトル)のみを検索対象にする(未指定時は全文検索)
$wikipedia keywords
: 指定されたキーワードの Wikipedia ページの情報を返す$wikipedia -en keywords
: 指定された言語(en等)の Wikipedia ページの情報を返す$wikipedia help
: wikipedia コマンドのヘルプを表示- wikipedia.py
- 以下の様な数式の計算結果を返す
1 + 1
100 * 100
1 / 10
sqrt(2)
- 任意のキーワードに対して emoji でのリアクションを返す
- reaction.py
- あいさつを返す
takanory: おはよう
BOT: @takanory おはようございます
-
$translate python
,$翻訳 python
: 指定した文字列を日本語に翻訳 -
$translate へび
,$翻訳 蛇
: 指定した文字列を英語に翻訳 -
$translate -ru へび
$翻訳 -ru へび
: 指定した言語(ru等)に翻訳 -
$translate list
$翻訳 リスト
: 使用できる言語の一覧を返す -
Powered by Microsoft Translator API
$suddendeath
: 突然の死のメッセージを返す$suddendeath words
: words を使って突然の死のメッセージを返す- suddendeath.py
$help
: ヘルプへのリンクを返す$shuffle spam ham eggs
: 指定された単語をシャッフルした結果を返す$choice spam ham eggs
: 指定された単語から一つをランダムに選んで返す$ping
: 応答(pong)を返す$version
: バージョン情報を返す$random
: チャンネルにいるメンバーからランダムに一人を選ぶ$random active
: チャンネルにいるactiveなメンバーからランダムに一人を選ぶ$cal
: 今月のカレンダーを返す$cal 9
: 今年の指定された月のカレンダーを返す$cal 9 2016
: 指定された年月のカレンダーを返す- misc.py
$ git clone git@github.com:pyconjp/pyconjpbot.git
$ cd pyconjpbot
$ python3.9 -m venv env
$ . env/bin/activate
(env) $ pip install -r requirements.txt
(env) $ cp slackbot_settings.py.sample slackbot_settings.py
(env) $ vi slackbot_settings.py
(env) $ python run.py
- 開発環境を構築する際は
requirements-dev.txt
を使用します。
$ git clone git@github.com:pyconjp/pyconjpbot.git
$ cd pyconjpbot
$ python3.9 -m venv env
$ . env/bin/activate
(env) $ pip install -r requirements-dev.txt
- toxでisort, black, flake8とmypyのチェックが実行できます
$ tox
___________________________________ summary ____________________________________
py38: commands succeeded
lintcheck: commands succeeded
congratulations :)