Skip to content

ポモドーロテクニックを使うことができるDiscord Bot

License

Notifications You must be signed in to change notification settings

kotakawase/pomoru

Repository files navigation

ポモる Lint Test MIT License

あなたのDiscordサーバーへ招待するには、ここをクリックしてください!
(注意: 2023年3月31日をもちまして、当面の間Botをクローズさせていただいております)

スクリーンショット 2022-03-29 0 01 23

ポモるとは?

ポモるは、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の作成

  1. DiscordのDEVELOPER PORTALへアクセス
  2. New Applicationを押し、任意のアプリケーション名を入力してCreate
  3. BotのTOKENとCLIENT IDを控えておく
  4. OAuth2 > URL Generatorを押し、SCOPESの「bot」にチェックを入れる
  5. BOT PERMISSIONSにはそれぞれ以下の権限にチェックを入れる
  • GENERAL PREMISSIONS
    • Read Messages/View Channles
  • TEXT PREMISSIONS
    • Send Messages
    • Manage Messages
  • VOICE PERMISSIONS
    • Connect
    • Speak
    • Mute Members
    • 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
Dockerを使用しずに起動する場合はこちらをご参照ください

リポジトリを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

Lint & Test

コマンド 説明
bin/lint Rubocopを実行
bin/test Minitestのテストを実行

スクリーンショット

スクリーンショット 2022-04-04 12 34 01

スクリーンショット 2022-04-04 12 25 47

スクリーンショット 2022-04-04 12 26 05

デモ

https://gyazo.com/a4a46a2bc6ba099e32d695095e3585d2

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

スクリーンショット 2022-03-28 15 47 25

謝辞

このBotは既にサービスとして存在するPomomoに影響を受けて作りました。

ありがとうございます!

ライセンス

このBotはMIT Licenseの条件下でオープンソースとして利用できます。

About

ポモドーロテクニックを使うことができるDiscord Bot

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages