SOLD OUT 2の市場情報を取得してdiscordに流します。
ファンタジー世界でお店を経営するゲーム「SOLD OUT 2」の市場情報をDiscordに出力します。
-
botを動かすためのサーバーを用意します。
-
Discordサーバーを作成します。もしくは管理者権限のあるDiscordサーバーを用意します。
-
Discordの開発者ページへ行き、アプリを作成します。
-
Botアカウントを作成し、TOKENの下にあるCopyボタンをクリックし、トークンを控えます。
-
そのURLを開いて、botを設置するサーバーを選択して認証します。
-
Discordの「ユーザー設定」→「テーマ」へ行き、「開発者モード」のスイッチをオンにします。
-
bot専用のチャンネルを作成します。作成したチャンネル(左部に出ているリスト群から)を右クリックして「IDをコピー」をクリックし、チャンネルIDを控えます。
-
"config.sample.ini"をREADMEに従って編集し、ファイル名を"config.ini"に変更します。もしくはconfig.iniに存在する値を環境変数に登録します。
-
Python仮想環境を用意します。
-
venv -p python3 venv
-
venv/bin/activate
orvenv\Scripts\activate
-
pip install -r requirements.txt
-
-
必要であれば"alias.sample.json"を編集して、ファイル名を"alias.json"に変更します。
-
main.pyを実行します。その後はDiscordのクライアントでコマンドを実行することができます。
config.iniは設定ファイルです。適切に編集されていないとプログラムが正常に動作しない場合がありますのでご注意ください。
config.iniが存在しない場合は同一の値を環境変数から読み出します。環境変数の場合は[discord]
や[command]
などのセクションを無視して値だけを設定してください。
主にDiscordまわりの設定をします。
botアカウントのトークンを記載します。
botを反応させるチャンネルを指定します。複数指定はできません。
チャンネルは開発者モードで得ることができるチャンネルIDで指定してください。
コマンドを編集できます。
市場情報を受け取るデフォルトのコマンドは!market
ですが、設定を変更して例えば/bazzar
にすることもできます。
コマンドの最初の文字を指定できます。
デフォルトでは!
(エクスクラメーションマーク)が指定されています。
市場情報を受け取るコマンドの文字列を指定できます。
デフォルトではmarket
が指定されています。
エイリアス関連のコマンドの文字列を指定できます。
デフォルトではalias
が指定されています。
EnableAlias
をFalse
にした場合、このコマンドは無効化されます。
バージョン情報コマンドの文字列を指定できます。
デフォルトではversion
が指定されています。
アイテム検索コマンドの文字列を指定できます。
デフォルトではsearch
が指定されています。
ヘルプ表示コマンドの文字列を指定できます。
デフォルトではhelp
が指定されています。
Wikiリンク生成コマンドの文字列を指定できます。
デフォルトではwiki
が指定されています。
定期実行時に価格を投稿するアイテムの登録/削除を行うコマンドの文字列を指定できます。
デフォルトではregister
が登録されています。
EnableRegularExecution
をFalse
にした場合、このコマンドは無効化されます。
その街の販売棚数・販売額合計・最も売られているものトップ3を表示します。
デフォルトではshelves
が登録されています。
その街の総人口・種別人口を表示します。
デフォルトではpopulation
が指定されています。
最新バージョンが存在するかどうかをチェックします。
デフォルトではchkver
が指定されています。
ログ出力に関する設定です。
ログ出力をするかどうかの設定です。
True
もしくはFalse
で指定してください。
デフォルトではTrue
が指定されています。
出力するログのレベルです。
debug
、info
、warning
、error
、critical
の5つから指定してください。
デフォルトではinfo
が指定されています。
その他の設定です。
タイムゾーンを指定できます。サーバーの所在地に関わらない時間設定が可能です。
デフォルトではAsia/Tokyo
が指定されています。
シャットダウンコマンドを実行できるユーザーのIDを指定します。
これが設定されなかった場合、シャットダウンコマンドは正常に動作しませんのでご注意ください。
エラー内容をDiscord側にも表示するかどうかを指定します。
True
もしくはFalse
で指定してください。
1日1回規定のアイテムの価格を投稿したり、月末に優待券利用に関する案内をしたりする定期実行サービスを利用するかどうかを指定します。
True
もしくはFalse
で指定してください。
エイリアスを利用するかどうかを指定します。
True
もしくはFalse
で指定してください。
現在時刻が定期実行の時間かどうかを確認する間隔を指定します。
数値が小さいほど指定された時間近くに実行できます。
単位は分で、1以上の整数で指定してください。
デフォルトでは10分が指定されています。
定期実行の時間を指定します。
前者に時(0以上23以下)を、後者に分(0以上59以下)を指定してください。
デフォルトでは、前者に7、後者に0が指定されているため毎日7:00に実行されます。
イベントを何日前からお知らせするかを指定します。
デフォルトでは3日が指定されています。
バージョンチェックコマンドに必要なものです。
後者でbotがあるリポジトリを、前者でそのリポジトリのユーザーIDを指定します。
自分でbotに改造を加えて使う場合に値を変更してください。
既定値は前者がQman110101
、後者がSO2MarketInfoBotForDiscord
です。
Alias.jsonは略称の設定ファイルです。略称や別名を登録することができます。
編集はjsonの文法に従って行うようにしてください。左が正式名称で右が略称・別名です。
コマンドからでも追加が可能です。
デフォルトでは!version
で表示されるバージョンメッセージを、このソフトウェアを改造し配布する際に変えることを推奨します。
その際は、開発者であるキューマン・エノビクトおよびゆずりょーの名前を「原製作者」として残すようにしてください。
-
このプログラムはPython 3.7以上を要求します。
-
このプログラムの改造はMITライセンスに則る限り自由ですが、API関連を改造する場合、API仕様ページに記載されている利用条件は必ず守るようにしてください。
-
APIの仕様上、ファイルを保管してから処理する方式になっています。
-
APIの仕様上取得上限を定めることができないため、1ファイルの容量がかなり大きくなっています(確認できた限りでは最大で2.5MB)。直接テキストエディタで開かないことをおすすめします。
-
このアプリの機能は予告なく変更される可能性があります。
MIT License. See LICENSE file.