diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..033df5fb --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.venv +__pycache__ diff --git a/generate_data.py b/generate_data.py new file mode 100644 index 00000000..fdbbfd1a --- /dev/null +++ b/generate_data.py @@ -0,0 +1,45 @@ +import httpx +from datetime import datetime, timedelta, timezone +from time import sleep +from main import TelemetrySnapshot + + +def main() -> None: + wait = 10 + online_time = 24 * 3600 # start at 1 day + ew = 0 + ns = 0 + while True: + snapshot = TelemetrySnapshot( + character_name="Test name", + char_tag="test_tag", + session_id="test_session_id", + timestamp=datetime.now(tz=timezone.utc), + ew=ew, + ns=ns, + z=0, + kills=0, + kills_per_hour="kph_str", + onlinetime=str(timedelta(seconds=online_time)), + deaths=0, + rares_found=0, + prismatic_taper_count=0, + vt_state="test state", + ) + resp = httpx.post( + "http://localhost:8000/position/", + data=snapshot.model_dump_json(), + headers={ + "Content-Type": "application/json", + "X-PLUGIN-SECRET": "your_shared_secret", + }, + ) + print(resp) + sleep(wait) + ew += 0.1 + ns += 0.1 + online_time += wait + + +if __name__ == "__main__": + main() diff --git a/static/script.js b/static/script.js index 0b6b9aff..bfe94b72 100644 --- a/static/script.js +++ b/static/script.js @@ -209,6 +209,8 @@ function render(players) { ${p.kills_per_hour} ${p.rares_found} ${p.vt_state} + ${p.onlinetime} + ${p.deaths} `; li.addEventListener('click', () => selectPlayer(p, x, y)); diff --git a/static/style.css b/static/style.css index 031a41be..b6a7286d 100644 --- a/static/style.css +++ b/static/style.css @@ -156,11 +156,12 @@ body { #playerList li { display: grid; grid-template-columns: 1fr auto; - grid-template-rows: auto auto auto; + grid-template-rows: auto auto auto auto; grid-template-areas: "name loc" "kills kph" - "rares meta"; + "rares meta" + "onlinetime deaths"; gap: 4px 8px; margin: 6px 0; padding: 8px 10px; @@ -178,6 +179,8 @@ body { .stat.kph { grid-area: kph; } .stat.rares { grid-area: rares; } .stat.meta { grid-area: meta; } +.stat.onlinetime { grid-area: onlinetime; } +.stat.deaths { grid-area: deaths; } /* pill styling */ #playerList li .stat { @@ -198,6 +201,8 @@ body { background: var(--accent); color: #111; } +.stat.onlinetime::before { content: "🕑 "} +.stat.deaths::before { content: "💀 "} /* hover & selected states */ #playerList li:hover { background: var(--card-hov); }