- 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 [email protected]: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 [email protected]: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 :)