Skip to content

Qman11010101/SO2MarketInfoBotForDiscord

Repository files navigation

SO2MarketInfoBotForDiscord

SOLD OUT 2の市場情報を取得してdiscordに流します。

概要

ファンタジー世界でお店を経営するゲーム「SOLD OUT 2」の市場情報をDiscordに出力します。

使用方法

  1. botを動かすためのサーバーを用意します。

  2. Discordサーバーを作成します。もしくは管理者権限のあるDiscordサーバーを用意します。

  3. Discordの開発者ページへ行き、アプリを作成します。

  4. Botアカウントを作成し、TOKENの下にあるCopyボタンをクリックし、トークンを控えます。

  5. OAuth2セクションで以下の項目にチェックを入れてURLをコピーします。 Image

  6. そのURLを開いて、botを設置するサーバーを選択して認証します。

  7. Discordの「ユーザー設定」→「テーマ」へ行き、「開発者モード」のスイッチをオンにします。

  8. bot専用のチャンネルを作成します。作成したチャンネル(左部に出ているリスト群から)を右クリックして「IDをコピー」をクリックし、チャンネルIDを控えます。

  9. "config.sample.ini"をREADMEに従って編集し、ファイル名を"config.ini"に変更します。もしくはconfig.iniに存在する値を環境変数に登録します。

  10. Python仮想環境を用意します。

    1. venv -p python3 venv

    2. venv/bin/activate or venv\Scripts\activate

    3. pip install -r requirements.txt

  11. 必要であれば"alias.sample.json"を編集して、ファイル名を"alias.json"に変更します。

  12. main.pyを実行します。その後はDiscordのクライアントでコマンドを実行することができます。

config.iniについて

config.iniは設定ファイルです。適切に編集されていないとプログラムが正常に動作しない場合がありますのでご注意ください。
config.iniが存在しない場合は同一の値を環境変数から読み出します。環境変数の場合は[discord][command]などのセクションを無視して値だけを設定してください。

[discord]

主にDiscordまわりの設定をします。

token

botアカウントのトークンを記載します。

channel

botを反応させるチャンネルを指定します。複数指定はできません。
チャンネルは開発者モードで得ることができるチャンネルIDで指定してください。

[command]

コマンドを編集できます。
市場情報を受け取るデフォルトのコマンドは!marketですが、設定を変更して例えば/bazzarにすることもできます。

prefix

コマンドの最初の文字を指定できます。
デフォルトでは!(エクスクラメーションマーク)が指定されています。

market

市場情報を受け取るコマンドの文字列を指定できます。
デフォルトではmarketが指定されています。

alias

エイリアス関連のコマンドの文字列を指定できます。
デフォルトではaliasが指定されています。
EnableAliasFalseにした場合、このコマンドは無効化されます。

version

バージョン情報コマンドの文字列を指定できます。
デフォルトではversionが指定されています。

search

アイテム検索コマンドの文字列を指定できます。
デフォルトではsearchが指定されています。

help

ヘルプ表示コマンドの文字列を指定できます。
デフォルトではhelpが指定されています。

wiki

Wikiリンク生成コマンドの文字列を指定できます。
デフォルトではwikiが指定されています。

register

定期実行時に価格を投稿するアイテムの登録/削除を行うコマンドの文字列を指定できます。
デフォルトではregisterが登録されています。
EnableRegularExecutionFalseにした場合、このコマンドは無効化されます。

shelves

その街の販売棚数・販売額合計・最も売られているものトップ3を表示します。
デフォルトではshelvesが登録されています。

population

その街の総人口・種別人口を表示します。
デフォルトではpopulationが指定されています。

chkver

最新バージョンが存在するかどうかをチェックします。
デフォルトではchkverが指定されています。

[logs]

ログ出力に関する設定です。

enableLog

ログ出力をするかどうかの設定です。
TrueもしくはFalseで指定してください。
デフォルトではTrueが指定されています。

logLevel

出力するログのレベルです。
debuginfowarningerrorcriticalの5つから指定してください。
デフォルトではinfoが指定されています。

[misc]

その他の設定です。

timezone

タイムゾーンを指定できます。サーバーの所在地に関わらない時間設定が可能です。
デフォルトではAsia/Tokyoが指定されています。

adminsitrator

シャットダウンコマンドを実行できるユーザーのIDを指定します。
これが設定されなかった場合、シャットダウンコマンドは正常に動作しませんのでご注意ください。

EnableDisplayError

エラー内容をDiscord側にも表示するかどうかを指定します。
TrueもしくはFalseで指定してください。

EnableRegularExecution

1日1回規定のアイテムの価格を投稿したり、月末に優待券利用に関する案内をしたりする定期実行サービスを利用するかどうかを指定します。
TrueもしくはFalseで指定してください。

EnableAlias

エイリアスを利用するかどうかを指定します。
TrueもしくはFalseで指定してください。

RegExcCheckTime

現在時刻が定期実行の時間かどうかを確認する間隔を指定します。
数値が小さいほど指定された時間近くに実行できます。
単位は分で、1以上の整数で指定してください。
デフォルトでは10分が指定されています。

RegExcHour, RegExcMinute

定期実行の時間を指定します。
前者に時(0以上23以下)を、後者に分(0以上59以下)を指定してください。
デフォルトでは、前者に7、後者に0が指定されているため毎日7:00に実行されます。

RegEventDay

イベントを何日前からお知らせするかを指定します。
デフォルトでは3日が指定されています。

GitHubUserID, GitHubRepoName

バージョンチェックコマンドに必要なものです。
後者でbotがあるリポジトリを、前者でそのリポジトリのユーザーIDを指定します。
自分でbotに改造を加えて使う場合に値を変更してください。
既定値は前者がQman110101、後者がSO2MarketInfoBotForDiscordです。

Alias.jsonについて

Alias.jsonは略称の設定ファイルです。略称や別名を登録することができます。
編集はjsonの文法に従って行うようにしてください。左が正式名称で右が略称・別名です。
コマンドからでも追加が可能です。

バージョンメッセージ記述について

デフォルトでは!versionで表示されるバージョンメッセージを、このソフトウェアを改造し配布する際に変えることを推奨します。
その際は、開発者であるキューマン・エノビクトおよびゆずりょーの名前を「原製作者」として残すようにしてください。

注意点

  • このプログラムはPython 3.7以上を要求します。

  • このプログラムの改造はMITライセンスに則る限り自由ですが、API関連を改造する場合、API仕様ページに記載されている利用条件は必ず守るようにしてください。

  • APIの仕様上、ファイルを保管してから処理する方式になっています。

  • APIの仕様上取得上限を定めることができないため、1ファイルの容量がかなり大きくなっています(確認できた限りでは最大で2.5MB)。直接テキストエディタで開かないことをおすすめします。

  • このアプリの機能は予告なく変更される可能性があります。

LICENSE

MIT License. See LICENSE file.

About

SOLD OUT 2の市場情報を取得してdiscordに流すbot

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages