81 Commits

Author SHA1 Message Date
Mathias Lesauvage 28f1c4e0e2 Update French locale 2025-09-21 11:42:52 +02:00
David Winings 116a60e404 Incremental + Batched frontend state updates (#888)
* Update JS package versions.

* Forgot to remove a debugging log statement.

* Figured out the peerDependency npm issues... react-scripts thought it needed an old version of typescript, which we don't even need.

* Re-work state broadcasting mechanism to prevent excessive data transmission.

* Tidy up delta parsing, handle failure to serialize state diffs.

* Apply diffs in batches and use immer to apply them in a simple way.

* Update frontend build.

* Update stale docstrings.

* Rebuild frontend.

* Delete a file that wasn't being used.
2025-09-19 20:26:19 -04:00
David Winings de70790cc4 Update JS package versions (#882)
* Update JS package versions.

* Forgot to remove a debugging log statement.

* Figured out the peerDependency npm issues... react-scripts thought it needed an old version of typescript, which we don't even need.
2025-09-19 20:01:23 -04:00
David Winings 2b070c2ff0 Dynamic frontend ports (#887)
* Dynamic frontend ports.

* Whoops forgot the stage strike page.
2025-09-19 19:56:02 -04:00
David Winings 21fd9660a3 Fixed issue with loading player's previous main(s) introduced by previous character-select.
Also reverted a log fmt change that was accidentally committed. Close flask socket prior to terminating thread, rather than after.
2025-09-13 16:51:59 -07:00
David Winings 9f46520133 Add multiple character support to web scoreboard + socketio/flask/pyside usage tidiness.
I also did a few things to help with general lifecycle issues with TSH on the python side.

- Handle signals so that the program exits as expected.
- Terminate the flask thread during shutdown to prevent "QThread still running when destroyed" crashes.
- Attempt to close the flask TCP socket to attempt to prevent exit crashes that I believe
  are caused by race conditions with syscalls like socket_recv.
- Use signaling mechanism to cause TSH-generated state socket emits to be sent
  from the flask thread rather than the state-changing thread.
- Upgrade WebServer.emit() to differentiate a response-to-message websocket emit vs a
  TSH-generated broadcast-update-to-all-connected-clients emit.
2025-09-13 15:53:01 -07:00
David Winings 1d00739b3d Allow the game image to set its own width (still fixed height) to prevent squashage. 2025-09-05 16:45:38 -07:00
David Winings f001a22a99 Add a header and fix phase/match score display. 2025-09-05 16:32:15 -07:00
David Winings 52ad06b83a Set losers checkbox 2025-09-05 16:32:15 -07:00
David Winings 890bc274cc Phase info for POST should come from state not props. 2025-09-05 16:32:15 -07:00
David Winings ef1770120d rename index.js 2025-09-05 16:32:15 -07:00
David Winings f8a8852818 web scoreboard: fix issues with non-english and non-rivals 2 environments. 2025-07-30 16:36:27 -07:00
David Winings 607e759415 Remove a logging statement. 2025-07-21 18:28:46 -07:00
David Winings 7dbad495f2 Finish up some typing and tidy up some of the dropdown setting bugs. 2025-07-21 18:28:38 -07:00
David Winings 0a56d6631c SocketIO and autocompletion. 2025-07-16 17:33:29 -07:00
David Winings e548021a57 Use socketIO for frontend so the UI is more responsive to TSH-side changes. 2025-07-15 16:34:07 -07:00
David Winings a1b376c1d9 Clarify ux around multiple players in team, add label on qt side linking to remote scoreboard 2025-07-10 15:46:00 -07:00
David Winings d1a1bd7a06 Scoreboard app: you can now collapse teams, and team accent color has been added 2025-07-09 19:11:40 -07:00
David Winings 4daa736b20 Updated the UI to include phase/match/best_of updating. Also added a route to serve the new UI page from the app webserver. 2025-07-07 15:06:37 -07:00
David Winings 3ac4d87242 Create a scoreboard page on the stage strike app.
Concept here is that I run streams for small house events where getting
to the stream PC to update set info is... tedious at best. So, I created
a way to update the current stream info with my phone.

I tried to mimic the style of the existing code as much as possible, I
hope this can get upstreamed without too many issues!

External to the new app page:

- Added react-router-dom to make any request not for /scoreboard fall back to the stage strike app.
- Added a route to get the current scoreboard state.
- Ran the build process, since it seems like that is how this repo handles npm build artifacts.

Features of the new page:
- Display current set
- Edit vital stats of any player from either team.
- Adjust set score
- Load sets a la `TSHSelectSetWindow.py` (includes filtering, and "hide concluded sets" option)
- Reasonably responsive to work well with either a mobile device or bigger screen.
- Set up with i18n tags, although I only filled out the en entries.
2025-07-07 13:17:39 -07:00
João Ribeiro Bezerra a8e33dd60e Merge branch 'feature/stage-strke-score-control-setting' of github.com:TwilCynder/TournamentStreamHelperTLS into TwilCynder-feature/stage-strke-score-control-setting 2023-07-18 18:03:17 +01:00
Mathias Lesauvage 50fcfb3a10 Fixed Italian, Chinese not having base files for tournament terms, web app 2023-07-09 19:18:29 +02:00
TwilCynder fb3cadaac1 very minor changes to the web app 2023-07-08 05:02:23 +02:00
TwilCynder 38524dd76e setting preventing SS app from changin score 2023-07-08 05:02:05 +02:00
Eion Dailey e7af9e6d35 Fixes for Stage Striking 2023-03-10 10:43:04 -05:00
João Ribeiro Bezerra a86da6f1bb Final fixes 2023-03-06 21:08:50 +00:00
João Ribeiro Bezerra ae85f87a7d Fix 2023-03-06 19:26:52 +00:00
João Ribeiro Bezerra 7d2391acee Merge branch 'feature/stage-strike-gentlemans' of github.com:Wolfy76700/TournamentStreamHelper into Wolfy76700-feature/stage-strike-gentlemans 2023-03-06 19:10:52 +00:00
João Ribeiro Bezerra 5199f60012 Fix translation loading 2023-03-06 19:09:06 +00:00
Mathias Lesauvage 7c13f8761f Updated French localisation 2023-03-06 19:10:36 +01:00
Mathias Lesauvage a67e848865 Updated French localisation 2023-03-06 19:05:46 +01:00
João Ribeiro Bezerra e5ab6f4e97 Update ja translation 2023-03-06 18:05:24 +00:00
João Ribeiro Bezerra 2fbe0dcbe0 Translate stage name to display language 2023-03-06 17:57:35 +00:00
João Ribeiro Bezerra 82ea0828a2 Organize translations 2023-03-06 17:03:28 +00:00
João Ribeiro Bezerra f76580dce8 Fixes 2023-03-05 18:16:48 +00:00
João Ribeiro Bezerra ca124e1062 Add undo/redo 2023-03-04 22:33:46 +00:00
João Ribeiro Bezerra 82beba9c5d Design changes 2023-03-04 08:20:51 +00:00
João Ribeiro Bezerra e6a88dff4f Design changes 2023-03-04 08:20:37 +00:00
João Ribeiro Bezerra dfb3fe79ea Change translations 2023-03-03 17:23:06 +00:00
João Ribeiro Bezerra 486cf3e582 Add gentlemans to stage strike 2023-03-03 11:21:21 +00:00
João Ribeiro Bezerra 27baee8cee Normalize stage strike output, fix startgg stage strike integration 2022-10-29 16:55:51 +01:00
João Ribeiro Bezerra 3f595354f0 Stage strike app code cleanup 2022-10-29 12:36:48 +01:00
João Ribeiro Bezerra 9eaa2e911f Port stage strike logic to the backend 2022-09-20 15:37:21 +01:00
João Ribeiro Bezerra a9afb90957 Merge branch 'main' of github.com:joaorb64/TournamentStreamHelper into feature/ui-translations 2022-05-13 14:01:19 -03:00
João Ribeiro Bezerra 16d78000a3 Fix resetting program score from stage strike 2022-05-13 13:26:41 -03:00
Mathias Lesauvage 20fb66e1a7 Fixed FR translation for web app 2022-05-11 17:54:52 +02:00
João Ribeiro Bezerra d8de4dfec8 Fix 2022-05-09 19:17:15 -03:00
João Ribeiro Bezerra b1114f6bf7 Remove logging 2022-05-09 19:12:29 -03:00
João Ribeiro Bezerra 4c105e63bd Fix 2022-05-09 19:04:13 -03:00
João Ribeiro Bezerra 522ca55181 Fix 2022-05-09 18:55:27 -03:00