Compare commits

...

2 commits

Author SHA1 Message Date
367f37738b Improve client output
Some checks failed
test / test (push) Has been cancelled
2025-06-20 00:18:14 +10:00
47558fcaae Update sdk version 2025-06-20 00:18:04 +10:00
3 changed files with 65 additions and 14 deletions

View file

@ -16,7 +16,7 @@ dot_env = ">= 1.2.0 and < 2.0.0"
gleam_erlang = ">= 1.0.0 and < 2.0.0"
gleam_otp = ">= 1.0.0 and < 2.0.0"
gleam_community_ansi = ">= 1.4.3 and < 2.0.0"
spacetraders_sdk = ">= 1.5.1 and < 2.0.0"
spacetraders_sdk = ">= 1.5.3 and < 2.0.0"
[dev-dependencies]
gleeunit = ">= 1.5.1 and < 2.0.0"

View file

@ -18,7 +18,7 @@ packages = [
{ name = "gleeunit", version = "1.5.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "D33B7736CF0766ED3065F64A1EBB351E72B2E8DE39BAFC8ADA0E35E92A6A934F" },
{ name = "ranger", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "gleam_yielder"], otp_app = "ranger", source = "hex", outer_checksum = "C8988E8F8CDBD3E7F4D8F2E663EF76490390899C2B2885A6432E942495B3E854" },
{ name = "simplifile", version = "2.2.1", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "C88E0EE2D509F6D86EB55161D631657675AA7684DAB83822F7E59EB93D9A60E3" },
{ name = "spacetraders_sdk", version = "1.5.1", build_tools = ["gleam"], requirements = ["birl", "gleam_http", "gleam_httpc", "gleam_json", "gleam_stdlib"], otp_app = "spacetraders_sdk", source = "hex", outer_checksum = "51C701576DD44703987B531ED22E13DB05254D3332941BC2E0ED72D661637395" },
{ name = "spacetraders_sdk", version = "1.5.3", build_tools = ["gleam"], requirements = ["birl", "gleam_http", "gleam_httpc", "gleam_json", "gleam_stdlib"], otp_app = "spacetraders_sdk", source = "hex", outer_checksum = "68D06C93333F646A516587644D6C91E5D07279D74E078FA7966D678E90EC431F" },
]
[requirements]
@ -32,4 +32,4 @@ gleam_json = { version = ">= 3.0.1 and < 4.0.0" }
gleam_otp = { version = ">= 1.0.0 and < 2.0.0" }
gleam_stdlib = { version = ">= 0.60.0 and < 1.0.0" }
gleeunit = { version = ">= 1.5.1 and < 2.0.0" }
spacetraders_sdk = { version = ">= 1.5.1 and < 2.0.0" }
spacetraders_sdk = { version = ">= 1.5.3 and < 2.0.0" }

View file

@ -2,7 +2,9 @@ import birl
import env
import gleam/int
import gleam/io
import gleam/list
import gleam/option
import gleam/uri
import gleam_community/ansi
import spacetraders_api
import spacetraders_models/account_id
@ -12,11 +14,9 @@ import spacetraders_models/waypoint_symbol
pub fn main() -> Nil {
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("")
let assert Ok(account) = spacetraders_api.get_account(agent_token)
io.println(ansi.bold(ansi.underline(ansi.blue("Account"))))
io.println(ansi.bold("Id:\t\t") <> account_id.to_string(account.id))
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("")
let assert Ok(agent) = spacetraders_api.get_agent(agent_token)
io.println(ansi.bold(ansi.underline(ansi.magenta("Agent"))))
io.println(ansi.bold("Symbol:\t\t") <> agent_symbol.to_string(agent.symbol))
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("")
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),
))
io.println(ansi.italic(
"Server will next reset "
<> birl.legible_difference(now, server_status.server_resets.next),
))
)
io.println(
ansi.bold("Next Reset:\t")
<> 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("")
}