Sobre el proyecto
Ultros es una aplicación web de código abierto que proporciona análisis en vivo del tablero de mercado para Final Fantasy XIV. Está alojada en ultros.app y cubre todos los centros de datos, con una sección de ayuda integrada que explica cada función.
Lo que ofrece
- Flip Finder: escanea todos los mundos de un centro de datos en busca de artículos que puedan comprarse baratos y revenderse en el mundo principal, mostrando la ganancia por día, la velocidad de venta, la deriva y una puntuación de confianza.
- Páginas de artículos: listados en vivo entre mundos, gráficos de historial de ventas, un "precio real" filtrado por valores atípicos e información de fuentes de vendedores/intercambio para artículos comercializables.
- Analizadores orientados a actividades para ganar gil: ganancias de fabricación de recetas (costo de ingredientes frente a precio de venta, con recursividad de subfabricación), entregas de levequests, aventuras de retainer, gasto de scrips, reventa de vendedores y fabricación de Free Company.
- Tendencias del Mercado: movimientos en 24 horas, calor por categoría y artículos que suben o bajan por mundo.
- Intercambio de Divisas: artículos comercializables para comprar con tomestones, scrips, sellos y otras monedas del juego.
- Listas: listas de compras compartibles con búsquedas del listado más barato.
- Seguimiento de Retainers: monitoree sus listados y reciba notificaciones cuando alguien le supere el precio (undercut).
- Alertas de precio: umbrales de precio por artículo entregados mediante DM de Discord o webhook.
- Bot de Discord: búsquedas de mercado y alertas de undercut dentro de un servidor.
El proyecto es descrito por su autor como un pasatiempo creado por diversión por una sola persona. Ejecuta anuncios opcionales puramente para cubrir el alojamiento; los anuncios pueden desactivarse en la configuración y se indica que los bloqueadores de anuncios funcionan.
Cómo está construido
El stack es full-stack Rust: Axum para el framework web del backend, Leptos para el frontend web full-stack, SeaORM para el acceso a la base de datos y Serenity para el bot de Discord. Los datos del mercado provienen de la API en vivo de Universalis (HTTP y WebSocket). El repositorio se divide en crates que incluyen el backend principal `ultros`, `ultros-frontend` con `ultros-app` y el `ultros-client` en WASM, `ultros-db`, `ultros-api-types`, un wrapper de `universalis`, crates de generación de datos del juego (`xiv-gen`, `xiv-gen-db`, `game-data-pack`, `icon-extract`) y una herramienta de `migration`.
Ejecutarlo por cuenta propia
Los prerrequisitos de desarrollo incluyen una toolchain de Rust nightly, Git LFS para los paquetes de datos del juego en `data/`, una instancia de Postgres en ejecución y cargo-leptos. Se puede iniciar un Postgres local con Docker, y un archivo `.env` basado en `.env.example` proporciona las credenciales de OAuth de Discord, una clave de cifrado de cookies, la URL de la base de datos, el puerto y la configuración de registros. La aplicación aplica migraciones de base de datos y obtiene datos de mundo/región de Universalis en el primer arranque. Los datos del juego (tablas de artículos y recetas más iconos de artículos) se envían como paquetes pregenerados rastreados con Git LFS e integrados en el tiempo de compilación; una herramienta `game-data-pack` los regenera a partir de los repositorios CSV de ffxiv-datamining de la comunidad y, para los iconos, a partir de los archivos SqPack de una instalación local de FFXIV, con opciones para fijar versiones, omitir iconos o indicar una ruta de juego no estándar.
Las contribuciones son bienvenidas a través de issues, pull requests o el servidor de Discord del proyecto. El proyecto tiene licencia MIT y su README señala que el código base puede estar algo desordenado en algunas partes.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.