À propos du projet
Ultros est une application web open-source qui fournit des analyses en temps réel du tableau des ventes pour Final Fantasy XIV. Elle est hébergée sur ultros.app et couvre tous les centres de données, avec une section d'aide intégrée expliquant chaque fonctionnalité.
Ce qu'elle propose
- Flip Finder : scanne tous les mondes d'un centre de données pour trouver des objets pouvant être achetés à bas prix et revendus sur un monde d'origine, affichant le profit par jour, la vitesse de vente, la dérive et un score de confiance.
- Pages d'objets : listes inter-mondes en direct, graphiques d'historique des ventes, un « prix réel » filtré des valeurs aberrantes, et des informations sur les sources de vendeurs/échanges pour les objets commercialisables.
- Analyseurs axés sur la génération de gils : profits d'artisanat de recettes (coût des ingrédients vs prix de vente, avec récursion de sous-artisanat), rendus de quêtes de leve, missions de retainer, dépenses de scrips, revente de vendeurs et artisanat de Compagnie Libre.
- Tendances du marché : mouvements sur 24 heures, chaleur par catégorie et objets en hausse/baisse par monde.
- Échange de devises : objets commercialisables à acheter avec des pierres de tombal, des scrips, des sceaux et d'autres devises en jeu.
- Listes : listes de courses partageables avec recherche des annonces les moins chères.
- Suivi des retainers : surveillez vos annonces et soyez notifié lorsque vous êtes surenchéri.
- Alertes de prix : seuils de prix par objet envoyés par DM Discord ou webhook.
- Bot Discord : recherches de marché et alertes de surenchère au sein d'un serveur.
Le projet est décrit par son auteur comme un passe-temps créé pour le plaisir par une seule personne. Il diffuse des publicités optionnelles uniquement pour couvrir l'hébergement ; les publicités peuvent être désactivées dans les paramètres et les bloqueurs de publicités sont compatibles.
Comment il est construit
La pile technique est entièrement en Rust : Axum pour le framework web backend, Leptos pour le frontend web full-stack, SeaORM pour l'accès à la base de données et Serenity pour le bot Discord. Les données du marché proviennent de l'API Universalis en direct (HTTP et WebSocket). Le dépôt est divisé en crates incluant le backend `ultros` principal, `ultros-frontend` avec `ultros-app` et le client WASM `ultros-client`, `ultros-db`, `ultros-api-types`, un wrapper `universalis`, des crates de génération de données de jeu (`xiv-gen`, `xiv-gen-db`, `game-data-pack`, `icon-extract`) et un outil de `migration`.
L'exécuter soi-même
Les prérequis de développement incluent une chaîne d'outils Rust nightly, Git LFS pour les packs de données de jeu sous `data/`, une instance Postgres active et cargo-leptos. Un Postgres local peut être lancé avec Docker, et un fichier `.env` basé sur `.env.example` fournit les identifiants Discord OAuth, une clé de chiffrement des cookies, l'URL de la base de données, le port et les paramètres de journalisation. L'application applique les migrations de base de données et récupère les données de monde/région depuis Universalis au premier démarrage. Les données de jeu (tables d'objets et de recettes plus les icônes d'objets) sont livrées sous forme de packs pré-générés suivis avec Git LFS et intégrés au moment de la compilation ; un outil `game-data-pack` les régénère à partir des dépôts CSV de la communauté ffxiv-datamining et, pour les icônes, à partir des fichiers SqPack d'une installation locale de FFXIV, avec des options pour épingler des versions, ignorer les icônes ou pointer vers un chemin de jeu non standard.
Les contributions sont les bienvenues via les issues, les pull requests ou le serveur Discord du projet. Le projet est sous licence MIT et son README note que le code source peut être quelque peu désordonné par endroits.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.