From be5313fa0092688cea04f7f1f115574765847c22 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sat, 19 Oct 2024 16:28:00 +0300 Subject: backend: fix run ranks --- frontend/package-lock.json | 6 ++ frontend/package.json | 1 + frontend/src/components/UploadRunDialog.tsx | 99 +++++++++++++++++------------ 3 files changed, 64 insertions(+), 42 deletions(-) (limited to 'frontend') diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 8b901ad..a77d244 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "frontend", "version": "0.1.0", "dependencies": { + "@nekz/sdp": "^0.9.0", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -3174,6 +3175,11 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" }, + "node_modules/@nekz/sdp": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@nekz/sdp/-/sdp-0.9.0.tgz", + "integrity": "sha512-ndg3Ze/RZxsyX0QRhZ0HnkHUIth7/3jpTcABhzQzsXV0Y4MzpoZ0dj6KRqiBz+O3acZdk0/9gr40Smqc7S4ikg==" + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 6c3022d..57c92a7 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@nekz/sdp": "^0.9.0", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/frontend/src/components/UploadRunDialog.tsx b/frontend/src/components/UploadRunDialog.tsx index d42ffe7..9f417b5 100644 --- a/frontend/src/components/UploadRunDialog.tsx +++ b/frontend/src/components/UploadRunDialog.tsx @@ -1,11 +1,16 @@ import React from 'react'; import { UploadRunContent } from '../types/Content'; +import { DemoMessages, ScoreboardTempUpdate, SourceDemoParser, UserMessage } from '@nekz/sdp'; +import fs from 'fs'; + + import '../css/UploadRunDialog.css'; import { Game } from '../types/Game'; import { Map } from '../types/Map'; import { API } from '../api/Api'; import { useNavigate } from 'react-router-dom'; +import { SvcUserMessage } from '@nekz/sdp/script/src/types/NetMessages'; interface UploadRunDialogProps { token?: string; @@ -103,6 +108,16 @@ const UploadRunDialog: React.FC = ({ token, open, onClose, return } } + const demo = SourceDemoParser.default() + .setOptions({ packets: true }) + .parse(await uploadRunContent.host_demo.arrayBuffer()); + + const scoreboardPacket = demo.findPacket(ScoreboardTempUpdate) + if (scoreboardPacket) { + console.log(scoreboardPacket) + } else { + console.log("couldnt find scoreboard packet") + } if (window.confirm("Are you sure you want to submit this run to LPHUB?")) { const message = await API.post_record(token, uploadRunContent); alert(message); @@ -114,7 +129,7 @@ const UploadRunDialog: React.FC = ({ token, open, onClose, React.useEffect(() => { if (open) { - _handle_game_select("1", "Portal 2 - Singleplayer"); // a different approach?. + _handle_game_select("1", "Portal 2 - Singleplayer"); // a different approach?. } }, [open]); @@ -125,15 +140,15 @@ const UploadRunDialog: React.FC = ({ token, open, onClose,
-
-

Select Game

-
_handle_dropdowns(1)} style={{display: "flex", alignItems: "center", cursor: "pointer", justifyContent: "space-between"}}> +
+

Select Game

+
_handle_dropdowns(1)} style={{ display: "flex", alignItems: "center", cursor: "pointer", justifyContent: "space-between" }}>
{selectedGameName}
- +
{games.map((game) => ( -
{_handle_game_select(game.id.toString(), game.name); _handle_dropdowns(1)}} key={game.id}>{game.name}
+
{ _handle_game_select(game.id.toString(), game.name); _handle_dropdowns(1) }} key={game.id}>{game.name}
))}
@@ -141,45 +156,45 @@ const UploadRunDialog: React.FC = ({ token, open, onClose, !loading && ( <> -
-
-

Select Map

-
_handle_dropdowns(2)} style={{display: "flex", alignItems: "center", cursor: "pointer", justifyContent: "space-between"}}> - {currentMap} - +
+
+

Select Map

+
_handle_dropdowns(2)} style={{ display: "flex", alignItems: "center", cursor: "pointer", justifyContent: "space-between" }}> + {currentMap} + +
-
-
- - Host Demo - _handle_file_change(e, true)} /> - { - games[selectedGameID].is_coop && - ( - <> - Partner Demo - _handle_file_change(e, false)} /> - Partner ID - setUploadRunContent({ - ...uploadRunContent, - partner_id: e.target.value, - })} /> - - ) - } -
- -
-
- - -
-
) } -- cgit v1.2.3