このプロジェクトについて
Ultrosは、Final Fantasy XIVのマーケットボード向けにライブ分析を提供するオープンソースのウェブアプリケーションです。ultros.appでホストされており、すべてのデータセンターをカバーし、アプリ内のヘルプセクションで各機能について説明しています。
提供機能
- Flip Finder:データセンター内の全ワールドをスキャンし、安く買ってホームワールドで転売できるアイテムを検索します。1日あたりの利益、販売速度、ドリフト、信頼性スコアを表示します。
- アイテムページ:ワールドを跨いだライブ出品状況、販売履歴チャート、外れ値をフィルタリングした「実勢価格」、およびマーケット可能なアイテムのNPC販売/交換ソース情報を表示します。
- Gil稼ぎ向け分析ツール:レシピ製作利益(材料コスト対販売価格、サブ製作の再帰計算を含む)、リーヴ納品、リテイナーベンチャー、スクリップ消費、NPC転売、フリーカンパニー製作の分析が可能です。
- Market Trends:24時間の変動アイテム、カテゴリー別のヒートマップ、ワールドごとの上昇/下降アイテムを表示します。
- Currency Exchange:トームストーン、スクリップ、シールなどのゲーム内通貨で購入可能なマーケットアイテムを提示します。
- リスト:最安出品を検索できる共有可能なショッピングリストを作成できます。
- リテイナー追跡:自身の出品を監視し、価格を切り下げられた際に通知を受け取れます。
- 価格アラート:アイテムごとの価格しきい値を設定し、DiscordのDMまたはWebhookで通知を受け取れます。
- Discordボット:サーバー内でマーケット検索や切り下げアラートを利用できます。
このプロジェクトは、作者によって「一人の人間が楽しみのために構築した趣味」であると説明されています。ホスティング費用を賄うためのみにオプションの広告が表示されますが、設定で無効化でき、広告ブロッカーも動作します。
技術構成
スタックはフルスタックRustで構成されています。バックエンドウェブフレームワークにAxum、フルスタックウェブフロントエンドにLeptos、データベースアクセスにSeaORM、DiscordボットにSerenityを使用しています。マーケットデータはUniversalis API(HTTPおよびWebSocket)から取得されます。リポジトリは、メインの`ultros`バックエンド、`ultros-frontend`(`ultros-app`およびWASMの`ultros-client`を含む)、`ultros-db`、`ultros-api-types`、`universalis`ラッパー、ゲームデータ生成用クレート(`xiv-gen`、`xiv-gen-db`、`game-data-pack`、`icon-extract`)、および`migration`ツールに分かれています。
セルフホスティングについて
開発の前提条件として、nightly Rustツールチェーン、`data/`下のゲームデータパック用Git LFS、動作中のPostgresインスタンス、およびcargo-leptosが必要です。ローカルのPostgresはDockerで起動でき、`.env.example`に基づいた`.env`ファイルでDiscord OAuth認証情報、クッキー暗号化キー、データベースURL、ポート、ログ設定を指定します。アプリは初回起動時にデータベースマイグレーションを適用し、Universalisからワールド/リージョンデータを取得します。ゲームデータ(アイテム・レシピテーブルおよびアイテムアイコン)はGit LFSで管理された事前生成パックとして提供され、コンパイル時に組み込まれます。`game-data-pack`ツールを使用すると、コミュニティのffxiv-datamining CSVリポジトリから、またアイコンについてはローカルのFFXIVインストール先のSqPackファイルからデータを再生成でき、バージョンの固定やアイコンのスキップ、非標準のゲームパス指定などのオプションが利用可能です。
コントリビューションは、Issue、プルリクエスト、またはプロジェクトのDiscordサーバーを通じて歓迎されています。本プロジェクトはMITライセンスの下で公開されており、READMEにはコードベースの一部に乱雑な箇所がある可能性があることが記されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.