このプログラムはSlack bot用のプログラムです。
このプログラムでは、競技プログラミングをする人向けに以下の2つの機能が提供しています。
- Codeforcesのバーチャルコンテストリコメンド(解いていない問題セットの提示)
- バーチャルコンテスト後の問題議論用スレッド立て
- Python3系の環境(最新のものをおすすめします)
1.pipを使ってslackbotライブラリをインストールします。 (pip3導入済みなら2行目のみ)
$ sudo apt-get install python3-pip
$ sudo pip3 install slackbot
2.karayama2020レポジトリを手元にクローンします。
$ git clone [email protected]:wakuwinmail/karayama2020.git
3.https://miyabikno-jobs.com/slackbot-api-token/ を参考にし、APIトークンを取得します。
4.Botを導入したいSlackのチャンネルで「アプリを追加する」を選択し、3で作成したBotをチャンネルに追加します。
5.取得したAPIトークンを"apitoken.txt"としてテキストファイルに保存し、1のフォルダ直下に置きます。
6.手元でbot.pyを実行すると、Slack botが起動します。
Codeforcesのバーチャルコンテストを行うとき、参加メンバーの誰も解いていないようなコンテストをリコメンドします。
1.slack botに"build (option)"とBotにメンションを送ります。
※(option)の部分には"Div1","Div2","Div3"のいずれかを入力します。例えば"Div2"を入力すると、Div.2相当のコンテストからリコメンドを行います。
※リコメンドを中止する場合は"erase"とBotにメンションすることで中止できます。
2.「参加する人はIDをメンションで送ってください」と返事が来るので、slack botに"id (Codeforcesでのユーザー名)"とメンションを送ります。
3.ユーザーが確認できると「IDを受け付けました」と返事が返ってきます。
4.2と3を参加する人数分行います。
5."run"とBotにメンションすると、これまでに入力されたユーザーを参加者として、参加者の1人も解いていないようなコンテストをリコメンドします。 (条件を満たすコンテストが存在しない場合、「該当するコンテストはありません」と返事が来ます。)
バーチャルコンテストが終わった後などに問題毎にスレッドを立て、問題の議論や解説を行いやすくします。
1.slack botに「Nスレ立てて」とメンションを送ります。(Nには立てたいスレッドの個数を10以下の整数で入力してください。)
2.「オッケー」のリアクションとともに「OK!N個のスレッドを立てます!」と返事がきます。
3.さらに1で指定した個数だけスレッドを立てます。(「このスレッドで1番目の問題について話し合いましょう!」のような形になっています。)
4.各スレッドで問題ごとに話し合いましょう。