Server code

This commit is contained in:
Bottersnike 2022-02-04 01:08:54 +00:00
parent 43f2a7f617
commit 629fc11ba4
4 changed files with 56 additions and 4 deletions

40
README.md Normal file
View File

@ -0,0 +1,40 @@
# EAAPI
These scripts should be considered complementary to the documentation, not the
other way round. Experimental or unconfirmed this may be present here, however
the doc pages should for the most part only contain confirmed information.
If you came here looking for a complete e-Amusement implementation, you
probably want https://github.com/DragonMinded/bemaniutils instead.
# Requirements
Rather than rolling my own ARC4 and Triple-DES implementations (why does everyone seem to do that?)
I instead opted to just use `pycryptodome`. `lxml` is required for the parsing of string packets,
but is not a hard dependency.
# Keys
In order to run this code, some encryption keys need loaded in. I have opted to not include them in
this repo because I didn't really feel like doing that. May or may not change that stance later.
For now, copy `eaapi/keys.template.py` to `eaapi/keys.py`, and fill in the blanks. If you're
following along with docs, you already have the values you need. Otherwise, I trust you can figure
out somewhere to find them. `CARDCONV_KEY` is only required if you plan to make use of `cardconv`.
## `eaapi/`
The actual implementation of stuff.
## `tests/`
An incredibly incomplete test suite. Run with `test` if you're on windows and lazy.
## `server-dummy/`
A super barebones e-Amusement server that's able to start a surprising number of games.
Largely exists as a proof of concept, and as a testing ground for specific endpoints without having
the overhead of an entire EA server running.
## `server/`
A less barebones server, used for experiementing with more complex behaviours. This probably won't
get pushed until it's had a significant tidy.
## `proxy/`
An e-Amusement server designed to proxy requests to a different upstream server, while allowing the
observation of requests as they're made. As above, probably won't push this for a bit.

View File

@ -1,10 +1,15 @@
@echo off
for /D %%G in (%CD%\*) do if exist %%G\.git (
set BASE=%CD%
for /D /R %%G in (*) do if exist %%G\.git (
cd %%G
echo ================================================================
echo %%G
echo ================================================================
git %*
cd ..
cd %BASE%
)
echo ================================================================
echo %CD%
echo ================================================================
git %*

View File

@ -1,6 +1,7 @@
@echo off
for /D %%G in (%CD%\*) do if exist %%G\.git (
set BASE=%CD%
for /R /D %%G in (*) do if exist %%G\.git (
cd %%G
set RESULT=
for /f %%i in ('git status -s') do (set RESULT=%%i)
@ -9,7 +10,7 @@ for /D %%G in (%CD%\*) do if exist %%G\.git (
git commit %*
set ANY=1
)
cd ..
cd %BASE%
)
if defined ANY (

View File

@ -5,6 +5,12 @@ for /D %%G in (%CD%\*) do (
git submodule update --init %%~nG
)
rem Special case for eaapi.server, unfortunately
set base=%CD%
cd eaapi\eaapi
git submodule update --init server
cd %base%
for /D %%G in (%CD%\*) do if exist %%G\requirements.txt (
py -m pip install -r %%G\requirements.txt
)