reply_bot

package module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2026 License: Unlicense Imports: 0 Imported by: 0

README

Reply Bot

予め呼び掛けと返答の組を設定しておくと、メンション付きでいずれかの呼び掛けが投稿されたときに対応する文で返信を返すActivityPub実装です。
C3クリエイタソン Snowカップにて作成を開始した作品です。

Requirements

ビルドにはGoが必要です。
想定されるGoのバージョンはgo.modを参照してください。

Usage

以下のいずれの場合も、別途リバースプロキシなどを適切に設定することを推奨します。

Non-Docker
  1. リポジトリ全体をコピーし、リポジトリルートに移動します。
    git clone https://github.com/Bokume2/reply_bot.git
    cd reply_bot
    
  2. .envに各設定値を記述します。
    cp .env.sample .env
    vim .env  # edit .env
    
  3. reply_dialogues.yamlに、Botが行う掛け合いを記述します。
    vim reply_dialogues.yaml
    
  4. Goをインストールします。
  5. 初回起動前に初期データを挿入します。
    go run scripts/seeds.go
    
  6. [Optional] 任意でBotのアイコン画像をJPEG形式で用意し、public/avatars/${BOT_PREFERRED_USERNAME}.jpgに保存します。${BOT_PREFERRED_USERNAME}は.envの設定値で置き換えてください。
    アイコン画像は後からでも追加可能ですが、一度画像を設定したあとに別の画像に差し替えるとリモートへの反映には時間が掛かります。
  7. サーバーを起動します。ポート3000でlistenを開始します。
    go run cmd/main.go
    
Docker
  1. リポジトリ全体をコピーし、リポジトリルートに移動します。
    git clone https://github.com/Bokume2/reply_bot.git
    cd reply_bot
    
  2. .envに各設定値を記述します。
    cp .env.sample .env
    vim .env  # edit .env
    
  3. reply_dialogues.yamlに、Botが行う掛け合いを記述します。
    vim reply_dialogues.yaml
    
  4. Dockerをインストールします。
  5. コンテナをビルドします。
    docker compose build
    
  6. 初回起動前に初期データを挿入します。
    docker compose run --rm app /bin/seeds
    
  7. [Optional] 任意でBotのアイコン画像をJPEG形式で用意し、public/avatars/${BOT_PREFERRED_USERNAME}.jpgに保存します。${BOT_PREFERRED_USERNAME}は.envの設定値で置き換えてください。
    アイコン画像は後からでも追加可能ですが、一度画像を設定したあとに別の画像に差し替えるとリモートへの反映には時間が掛かります。
  8. サーバーを起動します。ポート3000でlistenを開始します。
    docker compose up -d
    

Development

Visual Studio CodeのDev Container拡張機能に対応しています。VSCodeを開発コンテナで起動後、各種設定ファイルを記述してから開発コンテナのターミナルでairを実行するとホットリロード付きの開発サーバーが起動します。
あるいは、.devcontiner/compose.yamlを使用して直接Docker Composeで起動することもできます。この場合、コンテナの起動と同時に自動でairが実行されます。

Samples

samplesディレクトリ内のファイルはreply_dialogues.yamlの設定例です。
設定時の参考になれば幸いです。

License

ファイル内に明確に例外表示されたものを除いて、ソースコードはUnlicenseライセンスで配布されています。
詳しくはライセンス表示またはhttps://unlicense.orgを参照して下さい。

Contact

不具合や機能提案などのご連絡はTwitter(現X)やその他までお気軽にお声がけください。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Version

func Version() string

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL