Improve client output
Some checks failed
test / test (push) Has been cancelled

This commit is contained in:
Lily Rose 2025-06-20 00:18:14 +10:00
parent 47558fcaae
commit 367f37738b

View file

@ -2,7 +2,9 @@ import birl
import env import env
import gleam/int import gleam/int
import gleam/io import gleam/io
import gleam/list
import gleam/option import gleam/option
import gleam/uri
import gleam_community/ansi import gleam_community/ansi
import spacetraders_api import spacetraders_api
import spacetraders_models/account_id import spacetraders_models/account_id
@ -12,11 +14,9 @@ import spacetraders_models/waypoint_symbol
pub fn main() -> Nil { pub fn main() -> Nil {
let assert Ok(env.Env(agent_token:, ..)) = env.load_dotenv() let assert Ok(env.Env(agent_token:, ..)) = env.load_dotenv()
let assert Ok(server_status) = spacetraders_api.get_server_status()
let assert Ok(account) = spacetraders_api.get_account(agent_token)
let assert Ok(agent) = spacetraders_api.get_agent(agent_token)
let now = birl.now()
io.println("") io.println("")
let assert Ok(account) = spacetraders_api.get_account(agent_token)
io.println(ansi.bold(ansi.underline(ansi.blue("Account")))) io.println(ansi.bold(ansi.underline(ansi.blue("Account"))))
io.println(ansi.bold("Id:\t\t") <> account_id.to_string(account.id)) io.println(ansi.bold("Id:\t\t") <> account_id.to_string(account.id))
case account.email { case account.email {
@ -25,6 +25,8 @@ pub fn main() -> Nil {
} }
io.println(ansi.bold("Created At:\t") <> birl.to_iso8601(account.created_at)) io.println(ansi.bold("Created At:\t") <> birl.to_iso8601(account.created_at))
io.println("") io.println("")
let assert Ok(agent) = spacetraders_api.get_agent(agent_token)
io.println(ansi.bold(ansi.underline(ansi.magenta("Agent")))) io.println(ansi.bold(ansi.underline(ansi.magenta("Agent"))))
io.println(ansi.bold("Symbol:\t\t") <> agent_symbol.to_string(agent.symbol)) io.println(ansi.bold("Symbol:\t\t") <> agent_symbol.to_string(agent.symbol))
io.println( io.println(
@ -37,13 +39,62 @@ pub fn main() -> Nil {
) )
io.println(ansi.bold("Ship Count:\t") <> int.to_string(agent.ship_count)) io.println(ansi.bold("Ship Count:\t") <> int.to_string(agent.ship_count))
io.println("") io.println("")
io.println(ansi.italic(
"Server last reset " let assert Ok(server_status) = spacetraders_api.get_server_status()
let now = birl.now()
io.println(ansi.bold(ansi.underline(ansi.green("Server"))))
io.println(ansi.bold("Version:\t") <> server_status.version)
io.println(ansi.bold("Status:\t\t") <> server_status.status)
io.println(
ansi.bold("Last Reset:\t")
<> birl.legible_difference(now, server_status.reset_date), <> birl.legible_difference(now, server_status.reset_date),
)) )
io.println(ansi.italic( io.println(
"Server will next reset " ansi.bold("Next Reset:\t")
<> birl.legible_difference(now, server_status.server_resets.next), <> birl.legible_difference(now, server_status.server_resets.next)
)) <> " ("
<> ansi.italic(server_status.server_resets.frequency)
<> ")",
)
case server_status.health.last_market_update {
option.Some(last_market_update) ->
io.println(
ansi.bold("Market Updated:\t")
<> birl.legible_difference(now, last_market_update),
)
option.None -> Nil
}
io.println("")
io.println(ansi.bold(ansi.underline(ansi.blue("Links"))))
list.each(server_status.links, fn(link) {
io.println(ansi.bold(link.name) <> ": " <> uri.to_string(link.url))
})
io.println("")
io.println(
ansi.bold(ansi.underline(ansi.yellow("Leaderboard - Most Credits"))),
)
list.each(server_status.leaderboards.most_credits, fn(entry) {
io.println(
ansi.bold(agent_symbol.to_string(entry.agent_symbol))
<> ": "
<> int.to_string(entry.credits),
)
})
io.println("")
io.println(
ansi.bold(
ansi.underline(ansi.yellow("Leaderboard - Most Submitted Charts")),
),
)
list.each(server_status.leaderboards.most_submitted_charts, fn(entry) {
io.println(
ansi.bold(agent_symbol.to_string(entry.agent_symbol))
<> ": "
<> int.to_string(entry.chart_count),
)
})
io.println("") io.println("")
} }