鳩botでは主に次のことができます。
- 雨雲情報 ...
amesh [text]
で指定した地名・住所[text]の雨雲情報を画像で表示します。 - 最新の地震情報 ...
eq
で最新の地震情報を3件表示します。 - パワーワードの登録、表示 ...
text
で登録したパワーワードを表示します。 - 突然の死吹き出しで整形 ...
>< [text]
で文字列[text]を「突然の死」吹き出しで整形します。
鳩botは自分のPC上で動かすことができます。
鳩botを使うには以下が必要です。
- Dockerが動作するPC
- Slack API Token (Slack API Tokenの取得手順) (Slackで動かす場合のみ)
- Discord Bot Token (Discord Bot Tokenの取得手順) (Discordで動かす場合のみ)
- Misskeyアクセストークン (Misskeyアクセストークンの取得手順) (Misskeyで動かす場合のみ)
- Yahoo API Token (Yahoo API Tokenの取得手順)
- OpenAI API Key (OpenAI API Keyの取得手順)
-
事前にSlack API TokenとYahoo API Tokenを取得します。
-
Launch a demo app · Fly Docsに記載されている手順で
fly
コマンドをインストールします。 -
Launch a demo app · Fly Docsに記載されている手順でfly.ioへの登録・ログインを行います。
-
Dashboard · Fly内の
Billing
からクレジットカードを登録します (無料枠で使用する場合も必須)。 -
yq
コマンドのGitHubに記載されている手順でyq
コマンドをインストールします。 -
このリポジトリをcloneします。
安定版を使う場合は
-b master
を指定します。最新の開発版を使う場合は指定不要です。git clone -b master https://github.com/dev-hato/hato-bot.git cd hato-bot
-
.env
ファイルを作成しSlack API Token、PostgreSQLの認証情報、Yahoo API Tokenなどを記述します。.env.example
をコピーして使うとよいでしょう。MODEに
discord
を指定すると、DiscordのBotとして動作します。MODEに
misskey
を指定すると、自分のいるサーバーからのメンションに限って反応するMisskeyのBotとして動作します。 -
fly.toml
ファイルを作成します。fly.template.toml
をコピーし、TODOコメントに従って編集すると良いでしょう。 -
次のコマンドを実行してfly.ioへのデプロイを行います。
./flyio_deploy.sh
自分のPCで動かすこともできます。
-
事前にSlack API TokenとYahoo API Tokenを取得します。
-
hadolintをインストールします。
-
このリポジトリをcloneします。
安定版を使う場合は
-b master
を指定します。最新の開発版を使う場合は指定不要です。git clone -b master https://github.com/dev-hato/hato-bot.git cd hato-bot
または Release から最新の安定版をダウンロードして解凍します。
-
必要に応じてパッケージをインストールします。
uv python install uv sync npm install
-
.env
ファイルを作成しSlack API Token、PostgreSQLの認証情報、Yahoo API Tokenなどを記述します。.env.example
をコピーして使うとよいでしょうMODEに
discord
を指定すると、DiscordのBotとして動作します。MODEに
misskey
を指定すると、自分のいるサーバーからのメンションに限って反応するMisskeyのBotとして動作します。 -
docker composeで鳩botとPostgreSQLを起動します。
export TAG_NAME=$(git symbolic-ref --short HEAD | sed -e "s:/:-:g") docker compose up -d --wait
開発時は代わりに次のコマンドを実行します。
export TAG_NAME=$(git symbolic-ref --short HEAD | sed -e "s:/:-:g") docker compose -f docker-compose.yml -f dev.base.docker-compose.yml -f dev.docker-compose.yml build docker compose -f docker-compose.yml -f dev.base.docker-compose.yml -f dev.docker-compose.yml watch
-
コードの変更はdocker composeの再起動で適用できます。
export TAG_NAME=$(git symbolic-ref --short HEAD | sed -e "s:/:-:g") docker compose restart
開発時は自動的にDockerイメージの再ビルドが行われ反映されます。
npm run lint
-
鳩botに対しコマンドを実行したいときは
post_command.py
を使うと便利です。uv run post_command.py --channel {投稿先のチャンネルのchannel id} \ --user {自分のuser_id} \ "{hato-botのコマンド}"
-
またはngrokを使うこともできます。
./ngrok http 3000
開発に必要なパッケージと pre-commit
のインストールを行います。
uv python install
uv sync --dev
uv tool run pre-commit install
- コードを整形する場合は
uv tool run autopep8 --in-place --recursive .
を実行します。
-
鳩botで使用可能なコマンドは次の通りです。
{commands}
- バージョンアップによる変更点についてはCHANGELOG を参照してください。
-
バグ報告や機能追加の要望がある場合は Issues の
New Issue
から報告をお願いします。 -
プルリクエストも大歓迎です。
Botで利用しているサービスのクレジットを記載します。