Pomoru
ポモドーロテクニックを使うことができるDiscord Bot
Install / Use
/learn @kotakawase/PomoruREADME
ポモる

あなたのDiscordサーバーへ招待するには、<a href="https://discord.com/api/oauth2/authorize?client_id=928807564567797821&permissions=15739904&scope=bot">ここ</a>をクリックしてください!
(注意: 2023年3月31日をもちまして、当面の間Botをクローズさせていただいております)

ポモるとは?
ポモるは、Discord上で複数人がポモドーロテクニックをできない問題を解決したいDiscordで勉強する人向けのDiscord Botです。ユーザーはDiscord上でポモドーロテクニックを使うことができ、キッチンタイマーを使うとのとは違って、複数人で同時に使える環境が備わっていることが特徴です。
その他の特徴
- ポモドーロと休憩のスタート時にアラートを再生
- ポモドーロと休憩のスタート時にテキストを発言
- ポモドーロ、休憩、インターバルの設定
- ポモドーロと休憩の一時停止
- ポモドーロと休憩のリセット
- ポモドーロと休憩のスキップ
- カウントダウンタイマーの設定
- リマインダーアラートの設定
- アラートの音量を設定
- ポモドーロタイマーのステータスを取得
- ポモドーロの統計を取得
- ポモドーロタイマーの設定を取得
- メンバーをミュート
- コマンドプレフィックスは「pmt!」
コマンド
必須パラメータは<>で囲まれ、オプションパラメーターは[]で囲まれます。
たとえば「pmt!start」を実行してデフォルト値でポモドーロタイマーを開始したり、「pmt!start 30 10」を実行してポモドーロと休憩をカスタマイズしたりすることができます。
Control
start [pomodoro] [short_break] [long_break] [intervales]
ポモドーロタイマーを開始します。
各セッションは60分までパラメーターが有効です。(デフォルト値:25 5 15 4)
pause
セッションの一時停止。
resume
セッションの再開。
restart
セッションのリスタート。
skip
セッションのスキップ。
end
セッションの終了。
edit <pomodoro> [short_break] [long_break] [interval]
ポモドーロタイマーを設定します。
Info
help [command]
コマンドヘルプを表示します。
status
ポモドーロタイマーのステータスを取得します。
stats
ポモドーロの統計を取得します。
settings
ポモドーロタイマーの設定を取得します。
servers
ポモるを使用しているサーバーの数を確認します。
Other
countdown <duration> [task]
カウントダウンタイマーを開始します。
remind [pomodoro] [short_break] [long_break]
リマインダーアラートを設定します。(デフォルト値:5 1 5)
各セッションのタイマー以下であればオプションパラメータを設定することができます。
remind_off
リマインダーアラートをOffにします。
volume [level]
アラートの音量を変更します。(デフォルト値:1)
音量は0..2まで変更可能です。
Subscription
autoshush <all>
ユーザーを全員ミュートします。
実行するには管理者権限が必要です。
使用技術
- Ruby 3.1.0
- discordrb 3.4.1
- Docker
セットアップ
Botの作成
- DiscordのDEVELOPER PORTALへアクセス
- New Applicationを押し、任意のアプリケーション名を入力してCreate
- BotのTOKENとCLIENT IDを控えておく
- OAuth2 > URL Generatorを押し、SCOPESの「bot」にチェックを入れる
- BOT PERMISSIONSにはそれぞれ以下の権限にチェックを入れる
- GENERAL PREMISSIONS
- [x] Read Messages/View Channles
- TEXT PREMISSIONS
- [x] Send Messages
- [x] Manage Messages
- VOICE PERMISSIONS
- [x] Connect
- [x] Speak
- [x] Mute Members
- [x] Deafen Members
6. 発行されたURLをコピーしてBotをサーバーへ招待する
Docker imageを作成もしくはdockerhubからpullします
# Docker image
$ git clone https://github.com/kotakawase/pomoru.git
$ cd pomoru
$ docker build -t kotakawase/pomoru:main .
# dockerhubからpull
$ docker pull kotakawase/pomoru:main
Docker imageが作成されていることを確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kotakawase/pomoru main XXXXXXXXXXXX X hours ago XXXGB
Docker起動に必要な環境変数を設定
| 環境変数名 | 説明 | | --- | --- | | TOKEN | BotのTOKEN | | CLIENT_ID | BotのCLIENT ID | | PREFIX | コマンドプレフィックス |
$ touch ~/.env
TOKEN=YOUR_DISCORD_ACCESS_TOKEN
CLIENT_ID=YOUR_DISCORD_CLIENT_ID
PREFIX=COMMAND_PREFIX_TO_USE
起動
Dockerを起動
$ docker run --env-file ~/.env kotakawase/pomoru:main
<details><summary>Dockerを使用しずに起動する場合はこちらをご参照ください</summary><div>
リポジトリをCloneしてフォルダに移動
$ git clone https://github.com/kotakawase/pomoru.git
$ cd pomoru
discordrbで音声機能を扱うために必要なパッケージをローカル環境にインストールします。
参考: discordrb - Dependencies Voice dependencies
$ brew install libsodium
$ brew install opus
$ brew install ffmpeg
Bot起動に必要な環境変数を設定
| 環境変数名 | 説明 | | --- | --- | | TOKEN | BotのTOKEN | | CLIENT_ID | BotのCLIENT ID | | PREFIX | コマンドプレフィックス |
$ touch .env
TOKEN=YOUR_DISCORD_ACCESS_TOKEN
CLIENT_ID=YOUR_DISCORD_CLIENT_ID
PREFIX=COMMAND_PREFIX_TO_USE
gemのインストール
$ bundle install
Botを起動
$ bin/run
or
$ bundle exec ruby run.rb
</div></details>
Lint & Test
| コマンド | 説明 |
| --- | --- |
| bin/lint | Rubocopを実行 |
| bin/test | Minitestのテストを実行 |
スクリーンショット



デモ

Herokuへのデプロイ
リポジトリをCloneしてフォルダに移動
$ git clone https://github.com/kotakawase/pomoru.git
$ cd pomoru
Heroku上に任意のアプリケーションを作成
$ heroku create APPLICATTION_NAME
Herokuデプロイに必要な環境変数を設定
$ heroku config:set TOKEN=YOUR_DISCORD_ACCESS_TOKEN CLIENT_ID=YOUR_DISCORD_CLIENT_ID PREFIX=COMMAND_PREFIX_TO_USE
アプリケーションのstackをcontainerに設定
$ heroku stack:set container
リポジトリをHerokuにpush
$ git push heroku main
web dynoをアクティブにする
$ heroku ps:scale worker=1

謝辞
このBotは既にサービスとして存在するPomomoに影響を受けて作りました。
ありがとうございます!
ライセンス
このBotはMIT Licenseの条件下でオープンソースとして利用できます。
Related Skills
node-connect
341.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
prose
341.6kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
