H2Bot開発者ドキュメント ============================= ###### tags: `個人開発` 追加・修正についてはリポジトリの[issue](https://github.com/eiganken/h2bot/issues)に投げてください! 環境構築 ----------------------------- ### Gitのインストール H2Bot開発はマグマが流れるように流動的です。流れを制御するために、Gitを使います。Gitのインストールは[Gitのインストール](https://git-scm.com/book/ja/v2/%E4%BD%BF%E3%81%84%E5%A7%8B%E3%82%81%E3%82%8B-Git%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)を参考にしましょう。 ### リポジトリのclone Gitのインストールが終わったら、次にH2Botの開発拠点であるリポジトリをクローンしましょう。リポジトリのクローンは[リポジトリをクローンする](https://docs.github.com/ja/github/creating-cloning-and-archiving-repositories/cloning-a-repository)を参考にしましょう。 ### (物理環境向け) Pythonの設定 #### 1. discordライブラリをインストール ~~みなさんテスト環境だとdiscordライブラリいりませんね...~~ discordライブラリをインストールしましょう。 ``` $pip install discord.py #or $pip3 install discord.py ``` #### 2. import pathを追加 H2Botアプリケーションでは、異次元モジュールインポートを行います。力に目覚めるためにプロジェクトディレクトリ内の``ANYPATH/h2bot/h2bot``, ``ANYPATH/h2bot/database``, ``ANYPATH/h2bot/command``をPythonのimport_pathに追加しましょう。 ### (仮想環境向け) Dockerの設定 準備中です。 ### test.dbの配置 テスト用のデータベース``test.db``については、チャットもしくはメッセージで送ります。寝坊以外で返信しない可能性はほぼないです。 次の場所にダウンロードした``test.db``を配置してください。 ``` ---h2bot |---database |---test.db ``` 開発作業 ----------------------------- ### 開発用Gitブランチ 開発用の大根ブランチは``develop``です。新たなコマンドを追加してテストする場合は、``develop``ブランチから``feature/cmd-add-<command_name>``ブランチを派生させて開発しましょう。もし、コマンドに変更があるのなら``feature/cmd-upd-<command_name>``ブランチを派生させましょう。 ### コマンドの実装 コマンドを実装したいときは、以下のように``NEW_COMMAND``を実装しましょう。 ``` ---h2bot |---command |---NEW_COMMAND |---__init__.py |---manual.yml ``` #### __init__.py コマンドの処理を記述するpythonファイルです。``run()``関数を必ず定義してください。以下は``creators``コマンドの実装例です。 ```=python3 import database as db def run(props): result = db.get_col_values_of('creator_id') creators = [row[0] for row in result] return to_string(creators) def to_string(result_raw): s = "" for creator in result_raw: s += "@" + creator + "\n" return s ``` #### manual.yml コマンドのマニュアルを記述するyamlファイルです。 コマンドの文字列``val``と説明``desc``を必ず定義してください。以下は``creators``コマンドの実装例です。 ``` val: creators desc: 過去にエチ度を感じた絵の絵師一覧を表示する ``` H2Botアプリケーションの実行 ----------------------------- 環境構築(とコマンドの実装)が完了したところで、H2Botアプリケーションを実行してみましょう。 ``` $python3 app.py ``` ``config.yml``内で``state: test``のとき、自身のローカル環境でpythonアプリとしてテスト実行されます。実装したコマンドはここで試すことができます。 ``` $python3 app.py enter your test command > /echi creators ```