diff --git a/README.md b/README.md index 8ca2af9..4c66a5a 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,17 @@ # MonkeyBusiness -e-amusement server using [FastAPI](https://github.com/tiangolo/fastapi) and [TinyDB](https://github.com/msiemens/tinydb) +experimental local testing server -for experimental local testing and playing +## Usage -**don't host it publicly as-is. security and privacy features aren't implemented. tinydb can't handle many users.** +Run [start.bat (Windows)](start.bat) or [start.sh (Linux)](start.sh) -## Instructions - -1. Install [python](https://www.python.org/ftp/python/3.11.5/python-3.11.5-amd64.exe) with "Add python.exe to PATH" checked - -1. Run [start.bat (Windows)](start.bat) or [start.sh (Linux)](start.sh) - -1. Set services *url* in tools or prop/ea3-config.xml - -## Playable Games - -- DDR A20 PLUS -- DDR A3 - -- DRS - -- GITADORA 5 Matixx -- GITADORA 6 EXCHAIN -- GITADORA 7 NEX+AGE -- GITADORA 8 HIGH-VOLTAGE -- GITADORA 9 FUZZ-UP - -- IIDX 18 Resort Anthem -- IIDX 19 Lincle -- IIDX 20 tricoro -- IIDX 29 CastHour -- IIDX 30 RESIDENT - -- NOSTALGIA Op.3 - -- SDVX 6 EXCEED GEAR +[web interface](https://github.com/drmext/BounceTrippy/releases), [score import](utils/db) ## Troubleshooting -- Set **URL Slash 1 (On)** in tools or ea3-config [if a supported game breaks without it](modules/__init__.py#L44) +- Delete [or fix](start.bat#L9) `/.venv` if the server folder is moved or python is upgraded -- GITADORA requires `mdb_*.xml` copied to the server folder +- DRS, GD, and NOST require mdb xml copied to the server folder -- NOSTALGIA requires `music_list.xml` copied to the server folder - -- DRS requires `music-info-base.xml` copied to the server folder - -## Score Import - -Scores can be [imported](utils/db) from any network - -- DDR - -- IIDX - -## Web Interface - -Extract [BounceTrippy](https://github.com/drmext/BounceTrippy/releases) webui to the server folder - -- DDR - -- IIDX - -- GITADORA +- **URL Slash 1 (On)** [may still be required in rare cases](modules/__init__.py#L46) diff --git a/modules/ddr/playerdata_2.py b/modules/ddr/playerdata_2.py index dfcb2a5..60f9574 100644 --- a/modules/ddr/playerdata_2.py +++ b/modules/ddr/playerdata_2.py @@ -112,8 +112,8 @@ async def playerdata_2_usergamedata_advanced(request: Request): record["ghostid"], ] - league_name = b64encode(str.encode("Monkey Business")).decode() - current_time = round(time.time()) * 1000 + # league_name = b64encode(str.encode("Monkey Business")).decode() + # current_time = round(time.time()) * 1000 response = E.response( E.playerdata_2( @@ -122,9 +122,9 @@ async def playerdata_2_usergamedata_advanced(request: Request): E.is_refid_locked(0, __type="bool"), E.eventdata_count_all(0, __type="s16"), E.opt_timing_disp(opt_timing_disp, __type="s32"), - E.bpl_season_id(1, __type="s8"), - E.bpl_team_id(7, __type="s8"), - E.bpl_user_type(1, __type="s8"), + # E.bpl_season_id(1, __type="s8"), + # E.bpl_team_id(7, __type="s8"), + # E.bpl_user_type(1, __type="s8"), *[ E.music( E.mcode(int(mcode), __type="u32"), @@ -159,63 +159,63 @@ async def playerdata_2_usergamedata_advanced(request: Request): E.single_grade(single_grade, __type="u32"), E.double_grade(double_grade, __type="u32"), ), - E.golden_league( - E.league_class(3, __type="s32"), - E.current( - E.id(1, __type="s32"), - E.league_name_base64(league_name, __type="str"), - E.start_time(current_time, __type="u64"), - E.end_time(current_time + 1000000000, __type="u64"), - E.summary_time(current_time, __type="u64"), - E.league_status(3, __type="s32"), - E.league_class(2, __type="s32"), - E.league_class_result(3, __type="s32"), - E.ranking_number(1, __type="s32"), - E.total_exscore(99999999, __type="s32"), - E.total_play_count(999, __type="s32"), - E.join_number(1, __type="s32"), - E.promotion_ranking_number(1, __type="s32"), - E.demotion_ranking_number(2, __type="s32"), - E.promotion_exscore(1, __type="s32"), - E.demotion_exscore(1, __type="s32"), - E.league_name_eng_base64(league_name, __type="str"), - E.advance_privilege_lgscore(999, __type="s32"), - ), - E.result( - E.id(1, __type="s32"), - E.league_name_base64(league_name, __type="str"), - E.start_time(current_time, __type="u64"), - E.end_time(current_time + 1000000000, __type="u64"), - E.summary_time(current_time, __type="u64"), - E.league_status(3, __type="s32"), - E.league_class(2, __type="s32"), - E.league_class_result(3, __type="s32"), - E.ranking_number(1, __type="s32"), - E.total_exscore(99999999, __type="s32"), - E.total_play_count(999, __type="s32"), - E.join_number(1, __type="s32"), - E.promotion_ranking_number(1, __type="s32"), - E.demotion_ranking_number(2, __type="s32"), - E.promotion_exscore(1, __type="s32"), - E.demotion_exscore(1, __type="s32"), - E.league_name_eng_base64(league_name, __type="str"), - E.advance_privilege_lgscore(999, __type="s32"), - ), - ), - E.championship( - E.championship_id(1, __type="s32"), - E.name_base64("", __type="str"), - E.lang( - E.destinationcodes("", __type="str"), - E.name_base64("", __type="str"), - ), - E.music( - E.mcode(0, __type="u32"), - E.notetype(0, __type="s8"), - E.playstyle(0, __type="s32"), - ), - ), - E.preplayable(), + # E.golden_league( + # E.league_class(3, __type="s32"), + # E.current( + # E.id(1, __type="s32"), + # E.league_name_base64(league_name, __type="str"), + # E.start_time(current_time, __type="u64"), + # E.end_time(current_time + 1000000000, __type="u64"), + # E.summary_time(current_time, __type="u64"), + # E.league_status(3, __type="s32"), + # E.league_class(2, __type="s32"), + # E.league_class_result(3, __type="s32"), + # E.ranking_number(1, __type="s32"), + # E.total_exscore(99999999, __type="s32"), + # E.total_play_count(999, __type="s32"), + # E.join_number(1, __type="s32"), + # E.promotion_ranking_number(1, __type="s32"), + # E.demotion_ranking_number(2, __type="s32"), + # E.promotion_exscore(1, __type="s32"), + # E.demotion_exscore(1, __type="s32"), + # E.league_name_eng_base64(league_name, __type="str"), + # E.advance_privilege_lgscore(999, __type="s32"), + # ), + # E.result( + # E.id(1, __type="s32"), + # E.league_name_base64(league_name, __type="str"), + # E.start_time(current_time, __type="u64"), + # E.end_time(current_time + 1000000000, __type="u64"), + # E.summary_time(current_time, __type="u64"), + # E.league_status(3, __type="s32"), + # E.league_class(2, __type="s32"), + # E.league_class_result(3, __type="s32"), + # E.ranking_number(1, __type="s32"), + # E.total_exscore(99999999, __type="s32"), + # E.total_play_count(999, __type="s32"), + # E.join_number(1, __type="s32"), + # E.promotion_ranking_number(1, __type="s32"), + # E.demotion_ranking_number(2, __type="s32"), + # E.promotion_exscore(1, __type="s32"), + # E.demotion_exscore(1, __type="s32"), + # E.league_name_eng_base64(league_name, __type="str"), + # E.advance_privilege_lgscore(999, __type="s32"), + # ), + # ), + # E.championship( + # E.championship_id(1, __type="s32"), + # E.name_base64("", __type="str"), + # E.lang( + # E.destinationcodes("", __type="str"), + # E.name_base64("", __type="str"), + # ), + # E.music( + # E.mcode(0, __type="u32"), + # E.notetype(0, __type="s8"), + # E.playstyle(0, __type="s32"), + # ), + # ), + # E.preplayable(), ) ) diff --git a/modules/iidx/iidx30pc.py b/modules/iidx/iidx30pc.py index c3f6c90..bdc253d 100644 --- a/modules/iidx/iidx30pc.py +++ b/modules/iidx/iidx30pc.py @@ -540,60 +540,60 @@ async def iidx30pc_get(request: Request): # event_play_num=0, # last_select_flyer_id=0, # ), - E.player_compe( - E.compe_data( - E.compe_music( - index=0, - music_id=26029, - style_id=0, - note_grade_id=3, - ex_score=6, - pgreat_num=6, - great_num=6, - miss_num=6, - ), - E.compe_music( - index=1, - music_id=29057, - style_id=0, - note_grade_id=3, - ex_score=6, - pgreat_num=6, - great_num=6, - miss_num=6, - ), - E.compe_music( - index=2, - music_id=8027, - style_id=0, - note_grade_id=3, - ex_score=6, - pgreat_num=6, - great_num=6, - miss_num=6, - ), - E.compe_music( - index=3, - music_id=16027, - style_id=0, - note_grade_id=3, - ex_score=6, - pgreat_num=6, - great_num=6, - miss_num=6, - ), - compe_id=0, - forced_option=1, - compe_end_time=current_time, - compe_name="Monkey Business", - maker_name="kors k", - ex_score=666, - pgreat_num=666, - great_num=666, - my_rank=1, - total_join=1, - ), - ), + # E.player_compe( + # E.compe_data( + # E.compe_music( + # index=0, + # music_id=26029, + # style_id=0, + # note_grade_id=3, + # ex_score=6, + # pgreat_num=6, + # great_num=6, + # miss_num=6, + # ), + # E.compe_music( + # index=1, + # music_id=29057, + # style_id=0, + # note_grade_id=3, + # ex_score=6, + # pgreat_num=6, + # great_num=6, + # miss_num=6, + # ), + # E.compe_music( + # index=2, + # music_id=8027, + # style_id=0, + # note_grade_id=3, + # ex_score=6, + # pgreat_num=6, + # great_num=6, + # miss_num=6, + # ), + # E.compe_music( + # index=3, + # music_id=16027, + # style_id=0, + # note_grade_id=3, + # ex_score=6, + # pgreat_num=6, + # great_num=6, + # miss_num=6, + # ), + # compe_id=0, + # forced_option=1, + # compe_end_time=current_time, + # compe_name="Monkey Business", + # maker_name="kors k", + # ex_score=666, + # pgreat_num=666, + # great_num=666, + # my_rank=1, + # total_join=1, + # ), + # ), # E.news( # *[E(x, # E.detail( @@ -608,45 +608,45 @@ async def iidx30pc_get(request: Request): # )for x in ("news_data_all", "news_data_shop", "news_data_grade", "news_data_rival", "news_data_all_top", "news_data_area_top", "news_data_shop_top")], # disp_score_type=0, # ), - E.exam_data( - E.music( - radar_type=1, - index=0, - music_id=26029, - class_id=3, - rank=1, - score=1, - ), - E.music( - radar_type=1, - index=1, - music_id=29057, - class_id=3, - rank=1, - score=1, - ), - E.music( - radar_type=1, - index=2, - music_id=8027, - class_id=3, - rank=1, - score=1, - ), - E.music( - radar_type=1, - index=3, - music_id=16027, - class_id=3, - rank=1, - score=1, - ), - exam_id=0, - entry_num=1, - rank=1, - total_score=1, - end_time=current_time, - ), + # E.exam_data( + # E.music( + # radar_type=1, + # index=0, + # music_id=26029, + # class_id=3, + # rank=1, + # score=1, + # ), + # E.music( + # radar_type=1, + # index=1, + # music_id=29057, + # class_id=3, + # rank=1, + # score=1, + # ), + # E.music( + # radar_type=1, + # index=2, + # music_id=8027, + # class_id=3, + # rank=1, + # score=1, + # ), + # E.music( + # radar_type=1, + # index=3, + # music_id=16027, + # class_id=3, + # rank=1, + # score=1, + # ), + # exam_id=0, + # entry_num=1, + # rank=1, + # total_score=1, + # end_time=current_time, + # ), # E.questionnaire( # *[E.questionnaire_data( # questionnaire_id=i,