dev-hato / hato-bot

愛嬌のあるbotです。
MIT License
14 stars 3 forks source link
hato slack-bot

鳩bot - 愛嬌のあるBot

badge

鳩botでは主に次のことができます。

hato

鳩botを動かす

鳩botは自分のPC上で動かすことができます。

必要なもの

鳩botを使うには以下が必要です。

fly.io上で動かす

  1. 事前にSlack API TokenとYahoo API Tokenを取得します。

  2. Launch a demo app · Fly Docsに記載されている手順で fly コマンドをインストールします。

  3. Launch a demo app · Fly Docsに記載されている手順でfly.ioへの登録・ログインを行います。

  4. Dashboard · Fly内の Billing からクレジットカードを登録します (無料枠で使用する場合も必須)。

  5. yq コマンドのGitHubに記載されている手順で yq コマンドをインストールします。

  6. このリポジトリをcloneします。

    安定版を使う場合は -b master を指定します。最新の開発版を使う場合は指定不要です。

    git clone -b master https://github.com/dev-hato/hato-bot.git
    cd hato-bot
  7. .env ファイルを作成しSlack API Token、PostgreSQLの認証情報、Yahoo API Tokenなどを記述します。

    .env.example をコピーして使うとよいでしょう。

    MODEに discord を指定すると、DiscordのBotとして動作します。

    MODEに misskey を指定すると、自分のいるサーバーからのメンションに限って反応するMisskeyのBotとして動作します。

  8. fly.toml ファイルを作成します。

    fly.template.toml をコピーし、TODOコメントに従って編集すると良いでしょう。

  9. 次のコマンドを実行してfly.ioへのデプロイを行います。

    ./flyio_deploy.sh

自分のPC上で動かす

自分のPCで動かすこともできます。

  1. 事前にSlack API TokenとYahoo API Tokenを取得します。

  2. hadolintをインストールします。

  3. このリポジトリをcloneします。

    安定版を使う場合は -b master を指定します。最新の開発版を使う場合は指定不要です。

    git clone -b master https://github.com/dev-hato/hato-bot.git
    cd hato-bot

    または Release から最新の安定版をダウンロードして解凍します。

  4. 必要に応じてパッケージをインストールします。

    pipenv install
    npm install
  5. .env ファイルを作成しSlack API Token、PostgreSQLの認証情報、Yahoo API Tokenなどを記述します。

    .env.example をコピーして使うとよいでしょう

    MODEに discord を指定すると、DiscordのBotとして動作します。

    MODEに misskey を指定すると、自分のいるサーバーからのメンションに限って反応するMisskeyのBotとして動作します。

  6. 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
  7. コードの変更はdocker composeの再起動で適用できます。

    export TAG_NAME=$(git symbolic-ref --short HEAD | sed -e "s:/:-:g")
    docker compose restart

    開発時は自動的にDockerイメージの再ビルドが行われ反映されます。

lintをかける方法

npm run lint

コマンドの実行方法

コミットする前に行うこと

開発に必要なパッケージと pre-commit のインストールを行います。

pipenv install --dev
pipenv run pre-commit install

補足

鳩botコマンド一覧

バージョンアップによる変更点

バグ報告や機能の要望について

クレジット

Botで利用しているサービスのクレジットを記載します。