Compare commits

...

270 Commits

Author SHA1 Message Date
d400a0be4b adding luminous to readme 2024-08-16 09:25:39 -04:00
31ca45fc68 Merge branch 'develop' 2024-08-11 02:23:04 -04:00
ee667b9ea5 update changelog 2024-08-11 02:22:10 -04:00
c12272feab ...again 2024-08-11 02:11:23 -04:00
2a8a4880c2 Diva: change frontend nav name 2024-08-11 02:11:16 -04:00
5c497032f1 frontend: "Edit Card" -> "Card Information" 2024-08-09 02:43:39 -04:00
06a7fdb1b1 frontend: implement add/edit card 2024-08-09 02:37:34 -04:00
68bbde209a aimedb: add warning for all-zero access code/idm 2024-07-18 13:30:46 -04:00
02cee4198d aimedb: block all-zero access codes and idms 2024-07-18 13:26:57 -04:00
b5715b8da6 Merge pull request 'chuni: fix encryption , added known iter keys , and add c2c api for sdgs' (#165) from Puz/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#165
2024-07-15 18:32:55 +00:00
2647baef1e Merge pull request 'Chunithm: Add song ranks, improve non-S rating calculation' (#166) from mrarythmia/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#166
2024-07-15 18:31:04 +00:00
39e89d4908 Add song ranks, improve non-S rating calculation 2024-07-15 03:40:56 +02:00
Puz
ec7605eeb0 chuni: added missing c2c endpoint for sdgs 2024-07-10 07:21:56 +00:00
Puz
b5e7a59b5f chuni: fix encryption , and added all known iter keys 2024-07-10 07:17:12 +00:00
6a43e0eada update keychip serial generation code 2024-07-09 15:10:42 -04:00
d7e8c9b490 frontend: fix event log buttons 2024-07-06 23:20:04 -04:00
c65c71e89e card: add memos 2024-07-06 23:13:41 -04:00
15cf56ed9b dbutils: get loop once at top of file 2024-07-06 21:59:18 -04:00
51a47e51d9 Merge pull request 'DIVA made some festa stuff configurable in config' (#161) from ThatzOkay/artemis:diva_configire_festa into develop
Reviewed-on: Hay1tsme/artemis#161
2024-07-06 00:47:42 +00:00
ThatzOkay
58bdeb9290 Merge branch 'develop' into diva_configire_festa 2024-07-05 08:07:10 +00:00
9b5283d389 mai2: add event editing for sysops 2024-07-01 18:26:39 -04:00
=
97e1d5da05 fix disable. Fix casing in options 2024-06-30 12:54:44 +02:00
=
eb275062a1 Merge branch 'develop' into diva_configire_festa 2024-06-30 12:26:53 +02:00
ThatzOkay
d439483aec Merge pull request 'develop' (#8) from Hay1tsme/artemis:develop into develop
Reviewed-on: ThatzOkay/artemis#8
2024-06-30 10:24:42 +00:00
=
e0e63a9a13 configurable festa options 2024-06-30 00:23:10 +02:00
44fb6037cf chuni: add missing alembic script 2024-06-29 00:08:11 -04:00
c4afb083f9 Merge pull request 'Implemented User Points for teams' (#140) from EmmyHeart/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#140
2024-06-29 04:04:13 +00:00
b2bd73a8f5 Merge branch 'develop' into develop 2024-06-29 04:03:14 +00:00
ecb2e9ec75 mai2: properly add present items 2024-06-28 23:55:23 -04:00
af8bd1d1c0 mai2: fix presents 2024-06-28 23:29:31 -04:00
e9afaaf56c update changelog 2024-06-28 15:51:28 -04:00
4446ff1f21 mai2: add present support 2024-06-28 15:48:27 -04:00
fef527d61f Merge branch 'beerpsi-fix/chuni/correct-iter-counts' into develop (#151) 2024-06-28 13:10:14 -04:00
7242a187ab sao: fix sao_hero_log_data nullability 2024-06-28 12:25:33 -04:00
ThatzOkay
4a18f6b3bc Merge pull request 'develop' (#7) from Hay1tsme/artemis:develop into develop
Reviewed-on: ThatzOkay/artemis#7
2024-06-28 07:15:36 +00:00
f0515a2130 sao: fix quest failing to save 2024-06-27 23:24:12 -04:00
601cec9075 sao: you already know what it is 2024-06-27 10:02:19 -04:00
177f851368 sao: cleanup 2024-06-27 00:07:10 -04:00
40a66614bc sao: fix user_hero_log_id 2024-06-27 00:04:23 -04:00
171131493f sao: fix new issues 2024-06-26 23:57:07 -04:00
c13b096190 sao: split massive upgrade in half and hope it works 2024-06-26 23:31:59 -04:00
5eb2ef8311 sao: schema fixes 3: the misery never ends 2024-06-26 23:01:47 -04:00
f27f789269 sao: alembic sucks sometimes. 2024-06-26 22:37:56 -04:00
7206af83cb sao: fix upgrade script 2024-06-26 22:30:12 -04:00
e91f84fecc sao: backport changes from diana 2024-06-25 14:02:53 -04:00
6ae11f96a2 aimedb: fix idm zfill issue 2024-06-24 22:28:22 -04:00
8e39b56bae CxB: fix default config 2024-06-24 23:09:32 +00:00
05c4035f53 docs: add instructions for migrating from old versions, remove obsolite docs, add openssl example to windows guide 2024-06-24 18:11:25 -04:00
8f9e9d4766 fix downgrade script issue referenced in #156 2024-06-24 13:37:10 -04:00
bdbb22f164 logic fix 2024-06-23 22:19:27 -04:00
068aa5eaa3 prevent setting chipid if it's 0x04030201 2024-06-23 22:09:56 -04:00
f252b8e322 chuni: fix misnamed var in put_net_battle 2024-06-23 17:41:22 -04:00
40a177ddcc Merge pull request 'correctly reboot end time in example_config && update docs' (#159) from zaphkito/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#159
2024-06-23 21:35:07 +00:00
bd78251b6c Merge pull request 'chuni: fix GetUserNetBattleRankingInfoApi' (#160) from zaphkito/artemis:123/fix-net_battle-aime_id into develop
Reviewed-on: Hay1tsme/artemis#160
2024-06-23 21:34:29 +00:00
acac12c211 chuni: fix GetUserNetBattleRankingInfoApi 2024-06-23 16:17:46 +08:00
714713384d correctly reboot end time in example_config && update docs 2024-06-23 15:26:22 +08:00
699337c419 chuni: fix get_net_battle 2024-06-23 02:57:37 -04:00
e432cc1adf Merge pull request '[chuni] Use the map flag event ID when checking in GetGameMapAreaConditionApi' (#158) from beerpsi/artemis:fix/chuni/use-map-flag-event into develop
Reviewed-on: Hay1tsme/artemis#158
2024-06-22 22:44:00 +00:00
f747a731bf [chuni] Use the map flag event ID when checking in GetGameMapAreaConditionApi 2024-06-23 01:36:48 +07:00
be2bf8b491 Merge pull request '[chuni] Improve GetGameMapAreaConditionApi' (#157) from beerpsi/artemis:feat/chunithm/map-area-conditions-rework into develop
Reviewed-on: Hay1tsme/artemis#157
2024-06-22 17:33:47 +00:00
203aa43fe1 chuni: add sun plus and lumi to get_rankings 2024-06-22 13:31:52 -04:00
ce124ffe13 [chuni] Improve GetGameMapAreaConditionApi 2024-06-23 00:08:53 +07:00
ThatzOkay
07ec4e5263 Merge pull request 'develop' (#6) from Hay1tsme/artemis:develop into develop
Reviewed-on: ThatzOkay/artemis#6
2024-06-22 14:12:08 +00:00
3979a020a6 add idm and chip_id fields to card table 2024-06-22 00:47:12 -04:00
ca9ccbe8a3 chuni: add missing net battle funcs 2024-06-21 23:00:35 -04:00
bf5c959324 chuni: fix reader issue caused by encoding weirdness (#55) 2024-06-21 22:19:57 -04:00
ThatzOkay
7aa3cf82f1 Diva front end (#150)
Basic diva frontend implemented. Changing name and level string working. And some basic playlog page which needs more data

Co-authored-by: = <=>
Reviewed-on: Hay1tsme/artemis#150
Co-authored-by: ThatzOkay <thatzokay@noreply.gitea.tendokyu.moe>
Co-committed-by: ThatzOkay <thatzokay@noreply.gitea.tendokyu.moe>
2024-06-22 02:03:02 +00:00
=
f999269e41 Merge branch 'develop' of https://gitea.tendokyu.moe/ThatzOkay/artemis into develop 2024-06-20 23:11:33 +02:00
ThatzOkay
8947179127 Merge pull request 'develop' (#4) from Hay1tsme/artemis:develop into develop
Reviewed-on: ThatzOkay/artemis#4
2024-06-20 21:07:16 +00:00
=
74e2130747 Merge branch 'ThatzOkay-feature/diva-frontend' into develop 2024-06-20 22:58:57 +02:00
3741c286f8 Merge pull request '[chunithm] Support LUMINOUS' (#154) from beerpsi/artemis:feat/chunithm/luminous into develop
Reviewed-on: Hay1tsme/artemis#154
2024-06-20 18:37:12 +00:00
a5b47e2095 wacca: fix vs song updates 2024-06-20 10:59:26 -04:00
a1d54efbac add upserts 2024-06-20 20:28:52 +07:00
cfece7593e Merge pull request 'ongeki: fix base version title work' (#153) from zaphkito/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#153
2024-06-20 12:19:38 +00:00
5378655c52 [chunithm] Support LUMINOUS 2024-06-20 08:11:24 +07:00
51f65f9293 ongeki: I forgot json load 2024-06-18 04:15:40 +00:00
766912c51d ongeki: fix base version title work 2024-06-18 03:13:32 +00:00
243d40cfd8 Add changelog and docs 2024-06-18 09:39:14 +07:00
=
a6ca1b3392 Changed return from full result to just True or False 2024-06-17 22:23:53 +02:00
68bf3843ec pokken: fix default title plate id 2024-06-16 14:45:41 -04:00
784ac544f0 fix event log ordering, paging, add timestamp 2024-06-16 14:42:23 -04:00
ThatzOkay
21a09f2de9 Merge pull request 'develop' (#3) from Hay1tsme/artemis:develop into develop
Reviewed-on: ThatzOkay/artemis#3
2024-06-16 12:56:33 +00:00
=
d456ed365c Working diva frontend 2024-06-16 14:08:59 +02:00
bf8631448a support SDGS encryption 2024-06-15 22:22:07 +07:00
00224585bb pokken: fix pokemon_data uk 2024-06-14 00:06:39 -04:00
bf54969bc1 pokken: fix some image links 2024-06-13 18:15:38 -04:00
a523c25d84 pokken: finish filling out support list 2024-06-13 18:06:16 -04:00
ee7d5c4e21 pokken: readd mysql_charset to profile and pokemon data 2024-06-13 14:14:07 -04:00
e21568cfd9 pokken: fix profile loading fail 2024-06-12 23:24:45 -04:00
c3efc36be2 [chuni] Add correct endpoint iter_counts for all versions with encryption 2024-06-12 16:09:36 +07:00
=
da55e3e877 develop branch config 2024-06-11 21:57:40 +02:00
=
7d8093bb54 accidentally changed example config 2024-06-11 21:56:29 +02:00
=
1f9c1798c4 Basic working diva frontend with name editing and lv string editing. Working on playlog page 2024-06-11 21:48:34 +02:00
eaab3728c4 pokken: add additional logging 2024-06-11 14:00:29 -04:00
fe4d978f70 pokken: fix bnp_baseuri 2024-06-11 13:56:39 -04:00
3fd65da7fd pokken: backport changes from Diana 2024-06-11 12:25:45 -04:00
e06e316b7d pokken: fix achievement flags 2024-06-11 10:30:57 -04:00
=
1b5b9d7f9a very basic diva frontend 2024-06-11 01:06:24 +02:00
ThatzOkay
5ba041b32b Merge pull request 'develop' (#2) from Hay1tsme/artemis:develop into develop
Reviewed-on: ThatzOkay/artemis#2
2024-06-10 22:11:14 +00:00
e69922d91b ongeki: fix frontend versions 2024-06-09 03:14:43 -04:00
b4b8650acc mai2: add basic webui 2024-06-09 03:05:57 -04:00
e7ddfcda2e mai2: oops, forgot version 2024-06-08 22:29:49 -04:00
319aea098f dx: fix GetUserRivalMusicApi list index out of range 2024-06-08 22:19:59 -04:00
8b03f1a4f1 mai2: fix rival data load failing due to inheritance 2024-06-08 22:02:31 -04:00
eccbd1ad81 mai2: add rivals support 2024-06-08 21:25:48 -04:00
123ec99a97 mai2: fix aggressive find and replace 2024-06-08 20:55:41 -04:00
79f511c837 frontend: add username login 2024-06-08 19:18:15 -04:00
8e6e5ea903 chuni: fix frontend if no chunithm profiles are loaded 2024-06-08 19:10:24 -04:00
f94d22ab0d mai2: add tables for rivals and favorite music 2024-06-08 19:04:27 -04:00
efd249d808 maimai: some housekeeping 2024-06-08 17:26:51 -04:00
e6965b568d Merge pull request 'ongeki: fix clearstatus type' (#147) from akanyan/artemis:fix/ongeki/clearstatus into develop
Reviewed-on: Hay1tsme/artemis#147
2024-06-08 15:34:24 +00:00
4b013d975b Merge pull request 'Little fix for the diva reader when trying to read a dificulty thats not a direct number' (#148) from ThatzOkay/artemis:fix-diva-reader into develop
Reviewed-on: Hay1tsme/artemis#148
2024-06-08 15:29:47 +00:00
d57aa93401 Fix for diva reader when trying to read modded content. When it can't parse a number. So instead of crashing give a friendly error and continue 2024-05-30 09:28:07 +02:00
df2a4d3074 ongeki: clearstatus db migration 2024-05-29 19:15:22 +09:00
f8db1e2149 ongeki: fix clearstatus type 2024-05-29 18:59:07 +09:00
ThatzOkay
e15caeaa8f Merge pull request 'develop' (#1) from Hay1tsme/artemis:develop into develop
Reviewed-on: ThatzOkay/artemis#1
2024-05-29 09:13:37 +00:00
a2fe83ae06 cxb: add grade to playlog 2024-05-28 22:32:38 -04:00
12f035b7e5 add no logs message to event viewer 2024-05-26 22:49:05 -04:00
69d3ff156a Merge pull request 'Fix missing await when starting diva profile' (#145) from ThatzOkay/artemis:fix/diva-awaits into develop
Reviewed-on: Hay1tsme/artemis#145
2024-05-26 15:40:42 +00:00
31ce293a8c Fix missing await when starting diva profile 2024-05-26 15:58:28 +02:00
a5fd6e65d6 diva: fix handle_start_request 2024-05-24 10:13:04 -04:00
0a408baa87 DIVA: Fixed binary handler & render_POST errors 2024-05-23 09:21:08 -04:00
e66ae91740 add basic event log viewer 2024-05-22 01:36:41 -04:00
4ee4c26f5e allnet: enhance logging 2024-05-22 00:05:32 -04:00
a9587a9c91 add additional details to event_log 2024-05-21 23:05:22 -04:00
roaz
70b40ce992 chuni: Fix endpoint for older version of SDGS (#141)
Reviewed-on: Hay1tsme/artemis#141
Co-authored-by: roaz <roaz@noreply.gitea.tendokyu.moe>
Co-committed-by: roaz <roaz@noreply.gitea.tendokyu.moe>
2024-05-21 04:07:17 +00:00
3ed8d9c16b update get_mucha_info documentation 2024-05-19 21:40:02 -04:00
3825ec8e39 update contributing instructions 2024-05-19 21:39:49 -04:00
b3c1dceec9 Add team user points 2024-05-13 08:48:01 +00:00
50e0dde7de Added team user points 2024-05-13 08:45:19 +00:00
c96c9257a6 Merge pull request '[allnet] Enable DFI-encoded responses' (#134) from beerpsi/artemis:fix/allnet/dfi into develop
Reviewed-on: Hay1tsme/artemis#134
2024-05-05 05:42:22 +00:00
08891d0851 mai2: some improve for DX earlier version and return game code in uri (#125)
Attention: There are all talking about maimai DX and newer version, not Pre-DX

dx and newer version request these but no used, they are just exist in game code, only found `oldServerUrl` used in SDEZ 1.00, this should also fix SDGA and SDGB try to visit `ServerUrl + movieServerUrl` although that just because of SEGA shit code
tested work

![image](/attachments/f2c79134-4651-4976-8278-bbcf268f424a)

Reviewed-on: Hay1tsme/artemis#125
Co-authored-by: zaphkito <zaphkito@noreply.gitea.tendokyu.moe>
Co-committed-by: zaphkito <zaphkito@noreply.gitea.tendokyu.moe>
2024-05-05 05:41:14 +00:00
4c33dac96a Ongeki: fixed missing await under get_tech_count 2024-05-01 07:57:21 -04:00
960cf73a04 [allnet] Enable DFI-encoded responses 2024-04-30 22:34:41 +07:00
d5c80cfb0f [mai2/chuni/ongeki] Properly ignore guest plays (#132)
For all three games, guest plays are created using:
```python
0x1000000000001 | ((allnet_place_id & 65535) << 32)
```

Reviewed-on: Hay1tsme/artemis#132
Co-authored-by: beerpsi <beerpsi@duck.com>
Co-committed-by: beerpsi <beerpsi@duck.com>
2024-04-24 17:00:01 +00:00
a8daa0344a [mai2] Support encryption (#130)
Similar to O.N.G.E.K.I. and CHUNITHM, with the caveat that the obfuscated endpoint is created using `md5(endpoint + salt)` instead of using PBKDF2 like other games.

Tested and confirmed working on FESTiVAL+.

The current implementation is also affected by #129, so I'm open to ideas.

Reviewed-on: Hay1tsme/artemis#130
Co-authored-by: beerpsi <beerpsi@duck.com>
Co-committed-by: beerpsi <beerpsi@duck.com>
2024-04-24 16:59:33 +00:00
9175670d0d Merge pull request 'CHUNI: Add more chunithm frontend features' (#133) from MEANINGLINK/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#133
2024-04-24 16:51:20 +00:00
976aa6b560 CHUNI: Add more chunithm frontend features
1. Implemented profile, rating and playlog webpages.
2. Fixed bugs of version change api and name change api.
2024-04-23 22:43:45 +08:00
36ab38b1ee Merge pull request 'Ongeki: Fix issue with technical award folder counts not being saved properly' (#128) from Kumubou/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#128
2024-04-18 21:45:58 +00:00
1346bab911 Implement get_tech_count (it was stubbed out) 2024-04-17 00:45:05 +00:00
39fc5772eb Fix handle_get_user_tech_count_api_request so that it'll properly return tech award counts 2024-04-17 00:43:34 +00:00
bd7e1cead0 Merge pull request 'develop' (#1) from Hay1tsme/artemis:develop into develop
Reviewed-on: Kumubou/artemis#1
2024-04-17 00:12:00 +00:00
69c76f1116 Merge pull request 'chore[docs/game_specific_info.md]: Remove --game flag from dbutils.py lines.' (#124) from Vanilla/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#124
2024-04-13 20:22:31 +00:00
201630f1d5
chore[docs/game_specific_info.md]: Remove --game flag from dbutils.py lines. 2024-04-11 17:26:14 +08:00
ed4031feca wacca: block unregistered serials if set 2024-04-08 17:07:18 -04:00
8b5825bec4 fixed documentation revision for alembic changes & changelog update 2024-04-08 09:47:56 -04:00
d939755574 [mai2] Support maimai DX International (#118)
Reviewed-on: Hay1tsme/artemis#118
Co-authored-by: beerpsi <beerpsi@duck.com>
Co-committed-by: beerpsi <beerpsi@duck.com>
2024-04-07 19:12:12 +00:00
0c1c24148d fix: mai2 DX reboot time from config (#120)
Reviewed-on: Hay1tsme/artemis#120
Co-authored-by: topty <topty@noreply.gitea.tendokyu.moe>
Co-committed-by: topty <topty@noreply.gitea.tendokyu.moe>
2024-04-07 19:11:35 +00:00
926713431d Merge branch 'develop' of https://gitea.tendokyu.moe/Hay1tsme/artemis into develop 2024-04-02 16:43:16 -04:00
1072a9d63b database: fix create_revision_auto 2024-04-02 16:43:13 -04:00
7e709db0cc fix get_ip_addr 2024-03-29 20:13:15 -04:00
10582cc1fc ongeki: fix frontend profiles not loading due to missing await 2024-03-29 20:09:22 -04:00
87c7c91e3a add ability to add users, cards, arcades and cabs on the webui 2024-03-23 20:01:32 -04:00
de2e2349e6 Merge pull request 'maimai DX BUDDiES support' (#117) from Dniel97/artemis:mai2_buddies into develop
Reviewed-on: Hay1tsme/artemis#117
2024-03-22 19:13:39 +00:00
3613f4dbd2
mai2: BUDDiES support added 2024-03-20 21:42:38 +01:00
3cd3910b0d
Merge branch 'develop' into fork_develop 2024-03-20 20:37:32 +01:00
942b636b3e cxb: fixing rev s1 support 2024-03-18 22:33:39 -04:00
75bf8f4cb7 add python-multipart to requirements.txt (#112)
because of frontend now required python-multipart in requestments

Reviewed-on: Hay1tsme/artemis#112
Co-authored-by: zaphkito <zaphkito@noreply.gitea.tendokyu.moe>
Co-committed-by: zaphkito <zaphkito@noreply.gitea.tendokyu.moe>
2024-03-14 14:48:06 +00:00
40a0817009 CHUNITHM & O.N.G.E.K.I.: Handle userRatingBase*List (#113)
These tables are not used by the game, but are useful for anyone wanting to develop a web UI showing what the player's rating consists of. As such, instead of storing them in JSON columns, I've split them out, one row per each entry.

Reviewed-on: Hay1tsme/artemis#113
Co-authored-by: beerpsi <beerpsi@duck.com>
Co-committed-by: beerpsi <beerpsi@duck.com>
2024-03-14 14:44:32 +00:00
346f82a32a wacca: move allowed_stages into __init__ for s 2024-03-12 14:20:36 -04:00
f71591e622 wacca: fix S stage up stages 2024-03-12 14:17:26 -04:00
7066651549
Merge branch 'develop' into fork_develop 2024-03-12 18:34:04 +01:00
84fa139357 idac: add missing await, fixes #111 2024-03-12 10:14:03 -04:00
b63c2c2d12 dbutils: add autocreate option to revision 2024-03-11 21:24:57 -04:00
6557cac55b ongeki: add support for bright memory act 2 final 2024-03-07 15:20:02 -05:00
c4deff9d1c add database downgrading 2024-03-04 00:50:51 -05:00
bc2b883fa9 sao: quick fix to the documentation 2024-03-03 14:23:19 -05:00
86f419278d sao: adjust documentation 2024-03-03 12:25:25 -05:00
3fe8bc8c62 sao: fixing default party 2024-03-02 19:44:16 -05:00
3557578bcd sao: quick fixes to profile and rewards 2024-03-02 19:38:34 -05:00
6f654f8ba9 mai2: remove redundant method (fixes #103) 2024-03-02 18:00:14 -05:00
3559d56ccf cm: add awaits (fixes #104) 2024-03-02 17:55:41 -05:00
e69149632f frontend: fix namechange and password change failing 2024-03-02 17:52:01 -05:00
bd97428166 frontend: fix account and owner creation (fixes #108) 2024-03-02 17:48:48 -05:00
84c059ed75 idac: add missing await to handle_user_updatespecialmoderesult_request (closes #109) 2024-03-02 17:28:19 -05:00
91f49f52cc fix coroutine CardMakerReader.read_*** was never awaited (#105)
Reviewed-on: Hay1tsme/artemis#105
Co-authored-by: zaphkito <zaphkito@noreply.gitea.tendokyu.moe>
Co-committed-by: zaphkito <zaphkito@noreply.gitea.tendokyu.moe>
2024-03-02 22:25:54 +00:00
f708b8ea4f wacca: fix lily handle_user_status_update_request 2024-02-27 20:42:20 -05:00
b83399cef4 cxb: hotfix to classic rev 2024-02-26 18:35:34 -05:00
43d0edf036 docs: add note about memcached 2024-02-26 00:18:31 -05:00
4363b8321b mucha: UTC_SERVER_TIME -> SERVER_TIME_UTC 2024-02-24 16:49:02 -05:00
b7f56c20a7 wacca: fix version string printing 2024-02-17 00:21:37 -05:00
b462a2720a fix database config field protocol 2024-02-14 16:56:40 -05:00
89c2b324dc aimedb: add last login time update to register endpoints 2024-02-12 15:58:02 -05:00
4149944d56 aimedb: update card last login time properly 2024-02-12 15:53:28 -05:00
d4e00781c8 ongeki: Fix error loading user music (#100) 2024-02-12 11:40:24 -05:00
50f42f850a idac: fix database issues 2024-02-09 10:48:39 -05:00
d38207cdc3 fix billing server not working on some games 2024-02-09 09:56:38 -05:00
b0f603cbd8 Merge pull request 'SAO: Adding assets for the reader & edited game specific info' (#99) from Midorica/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#99
2024-02-02 20:16:04 +00:00
864b749f20 sao: adding reader assets 2024-02-02 15:10:36 -05:00
9844b7ebdb add license 2024-01-29 02:06:59 -05:00
77dfec0483 docs: inf 2024-01-25 16:29:53 -05:00
c7aa3f2479 docs: i suck at typing 2024-01-25 16:09:34 -05:00
9f67079614 docs: fix typos 2024-01-25 15:24:21 -05:00
d2177bdbed docs: add windows install guide 2024-01-25 15:12:26 -05:00
ce5888227e idz: fix userdb 2024-01-23 11:31:09 -05:00
83b981917e sao: add logout_ticket_unpurchased, get_quest_hierarchy_progress_degrees_ranking_list and get_quest_popular_hero_log_ranking_list 2024-01-22 17:42:58 -05:00
3a710c671e sao: fix data issues 2024-01-22 16:45:09 -05:00
348edef0f5 idac: add missing await 2024-01-22 16:35:43 -05:00
60e9cd2edd sao: fix bad find and replace 2024-01-22 16:30:32 -05:00
404496191d mucha: remove print statement 2024-01-22 16:25:51 -05:00
8864b2625d fix proxy ports 2024-01-22 16:21:49 -05:00
200bfe7d84 mucha: oops 2024-01-22 15:55:10 -05:00
6ed80ecbab fix ongeki and sao 2024-01-22 15:49:06 -05:00
9a021d4005 mucha: add shop info 2024-01-22 15:32:43 -05:00
66c9548dd2 mucha: move to starlette 2024-01-22 15:03:59 -05:00
029be55cc0 mucha: fix handlers 2024-01-22 14:59:53 -05:00
5c9570d421 allnet: fix placeid formatting 2024-01-22 14:47:36 -05:00
8d416d7633 allnet: add exception handling if get_allnet_info fails 2024-01-22 14:44:21 -05:00
a15ad77f20 csb: fix get_allnet_info 2024-01-22 14:42:13 -05:00
384924335c allnet: populate title registry when launching standalone 2024-01-22 14:42:02 -05:00
58c7d3f22d readme: fixing typo for maimai 2024-01-18 14:28:32 -05:00
1cced47c1d Merge pull request 'Modifying readme to add game version names' (#95) from Midorica/artemis:develop into develop
Reviewed-on: Hay1tsme/artemis#95
2024-01-18 18:36:29 +00:00
4b2bce9d12 fixing the order of the games in the readme 2024-01-18 13:35:34 -05:00
220ba8ba54 modifying readme for game versions 2024-01-18 13:13:36 -05:00
1c3f52974d cardmaker: add missing await (thanks galexion!) 2024-01-16 19:19:25 -05:00
de013766f6 cardmaker: fix method not allowed 2024-01-16 02:47:59 -05:00
a4262b9285 update install guides 2024-01-14 18:40:14 -05:00
f41eb907ef update prod.md 2024-01-14 17:46:52 -05:00
a3b1d07c73 update nginx example config 2024-01-14 17:42:58 -05:00
7cf8b4fd5f aimedb: allow listen address override 2024-01-14 16:48:41 -05:00
e36989e7cc billing: fix overzealous find and replace 2024-01-14 16:43:25 -05:00
1003651fb4 add alembic to requirements.txt 2024-01-14 03:34:45 -05:00
97e5c29cf5 frontend: utf16 -> utf8 2024-01-13 17:15:02 -05:00
cdc1b302f2 docs: fix inaccurate config description 2024-01-13 01:34:57 -05:00
ff26485c93 update config documentation 2024-01-13 01:32:19 -05:00
e80b0671c2 frontend: add charset=utf16 2024-01-12 18:03:44 -05:00
ae09c2ad48 chuni: add frontend 2024-01-12 18:03:11 -05:00
9a7d5bc689 fix logging 2024-01-11 21:01:51 -05:00
fc3f0900b3 dbutils: add create-revision command 2024-01-11 20:48:27 -05:00
19fd008598 fix legacy upgrade script 2024-01-11 20:39:29 -05:00
ba7cb07208 update default config value 2024-01-11 20:34:53 -05:00
31969221e2 sao: change handle_c12a to async 2024-01-11 20:25:30 -05:00
df4c667adf Merge branch 'starlette_cleanup' into develop 2024-01-11 20:24:59 -05:00
72bac55353 update docs 2024-01-11 12:36:34 -05:00
bb752563cc aimedb: add enable toggle 2024-01-11 12:25:35 -05:00
a676e42a59 fix old value being in config 2024-01-11 12:16:45 -05:00
6dd46a5aa7 fix default config typo 2024-01-11 12:09:19 -05:00
fb36cc9b07 configuration changes, update docs 2024-01-11 12:08:22 -05:00
3bfc9cc845 sao: stub give_free_ticket 2024-01-10 12:51:40 -05:00
06e7288cad ongeki: fix frontend page 2024-01-09 21:16:22 -05:00
d01ceab92f idac: remove hanging "'s" on frontend if the person viewing the page doesn't have a profile 2024-01-09 21:03:58 -05:00
0a56207e90 frontend: fix cab list on arcade page 2024-01-09 20:08:10 -05:00
d672edb266 fix searching for an arcade by serial 2024-01-09 19:45:39 -05:00
805b8f5b3e allnet: fix error parsing dli files 2024-01-09 19:10:54 -05:00
8a99f94c93 aimedb: fix felica lookups failing 2024-01-09 19:10:39 -05:00
5e6efbd092 wacca: fix network BAD 2024-01-09 19:10:24 -05:00
be0e407ebe wacca: fix hash 2024-01-09 18:49:43 -05:00
c680c2d4e9 readd get_title_port_ssl 2024-01-09 17:49:18 -05:00
261d09aaef dbutils: add legacy migration 2024-01-09 17:11:49 -05:00
2c1958eb04 fix SDDT v5 rollback script 2024-01-09 16:23:08 -05:00
37304500a5 fix SDDT v5 rollback and v6 upgrade scripts 2024-01-09 16:22:43 -05:00
e6dad1cb34 ongeki: fix v6 upgrade script 2024-01-09 16:08:48 -05:00
2d95e29f3c remove unused imports 2024-01-09 15:59:58 -05:00
f8c77e69ed remove unused table 2024-01-09 15:56:49 -05:00
9dab26b122 port frontend changes from different project 2024-01-09 15:54:34 -05:00
e27ac4b81f fix dockerfile 2024-01-09 14:46:43 -05:00
05586df08a move to async database 2024-01-09 14:42:17 -05:00
edd3ce8ead move to alembic 2024-01-09 13:57:59 -05:00
07cbbcc377 idac: fix matching 2024-01-09 12:52:53 -05:00
4bc77a8ef6 cxb: impl JSONResponseNoASCII 2024-01-09 12:44:48 -05:00
1c22c6bec0 idac: add echo server 2024-01-09 12:41:47 -05:00
7b49a8ab58 add JSONResponseNoASCII 2024-01-09 12:41:32 -05:00
f65aa4d60a idz: add socket servers 2024-01-09 12:21:31 -05:00
4b9db8be3b add uvicorn to requirements 2024-01-09 11:49:22 -05:00
5c124a7d61 chuni: remove semicolon 2024-01-09 11:48:28 -05:00
b0536e45ed chuni: remove semicolon 2024-01-09 11:43:43 -05:00
08c831ff8c add missing credit to changelog 2024-01-09 10:35:50 -05:00
4933ad72f2 adb: change warning to debug 2024-01-09 03:17:23 -05:00
cc68b7f6c6 adb: fix timeout issue 2024-01-09 03:16:31 -05:00
14fa0f5e8e begin move 2024-01-09 03:07:04 -05:00
397 changed files with 113448 additions and 31420 deletions

13
LICENSE.txt Normal file
View File

@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

View File

@ -1,9 +1,114 @@
# Changelog
Documenting updates to ARTEMiS, to be updated every time the master branch is pushed to.
## 20240811
### System
+ Change backend from Twisted to Starlette
+ Implement async handlers
+ Reboot times for multiple games have been fixed (thanks zaphkito!)
### Frontend
+ Edit button changed to View on the user page, and is where you can edit the card memo
+ Add card now works as it should
+ Add event log viewer in the `sys` page for sysadmins
+ Add pages for Pokken, SAO, and maimai
### AimeDB
+ Now rejects all-zero access codes
+ Stores card IDm (for AmusementIC) and MiFare ID (for old aime/banapass)
+ ...unless that MiFare ID is 0x01020304 (the default for segatools)
### maimai
+ Add support for BUDDiES
+ Rivals and Favorite Music support
### Wacca
+ Add option to block unregistered serials from accessing the title server
### DIVA
+ Fix for reading modded content (Thanks ThatzOkay!)
### CHUNITHM
+ Save net battle info
## 20240630
### DIVA
+ Added configurable festa options'
## 20240629
### CHUNITHM
+ Add team points
## 20240628
### maimai
+ Add present support
## 20240627
### SAO
+ Fix ghost items, character and player XP, EX Bonuses, unlocks, and much much more
## 20240620
### CHUNITHM
+ CHUNITHM LUMINOUS support
## 20240616
### CHUNITHM
+ Support network encryption for Export/International versions
### DIVA
+ Working frontend with name and level strings edit and playlog
## 20240530
### DIVA
+ Fix reader for when dificulty is not a int
## 20240526
### DIVA
+ Fixed missing awaits causing coroutine error
## 20240524
### DIVA
+ Fixed new profile start request causing coroutine error
## 20240523
### DIVA
+ Fixed binary handler & render_POST errors
## 20240408
### System
+ Modified the game specific documentation
## 20240407
### Maimai
+ Support maimai DX International [#118](https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/118) (Thanks beerpsi!)
+ Fixed the maimai DX reboot time from config [#120](https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/120) (Thanks topty!)
## 20240318
### CXB
+ Fixing handle_data_shop_list_detail_request for Sunrise S1
## 20240302
### SAO
+ Fixing new profile creation with right heroes and start VP
+ Fix to the Unanalyzed Log responses returning the wrong rewards
+ Documentation revised
## 20240226
### CXB
+ Fixing paths for rev.py
+ Changed encoding for handle_data_item_list_icon_request
## 20240202
### SAO
+ Added reader assets and edited the game specific documentation
## 20240118
### System
+ Added game version names to the readme
## 20240109
### System
+ Removed `ADD config config` from dockerfile
+ Removed `ADD config config` from dockerfile [#83](https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/83) (Thanks zaphkito!)
### Aimedb
+ Fixed an error that resulted from trying to scan a banned or locked card

View File

@ -1,8 +1,182 @@
# Contributing to ARTEMiS
If you would like to contribute to artemis, either by adding features, games, or fixing bugs, you can do so by forking the repo and submitting a pull request [here](https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls). Please make sure, if you're submitting a PR for a game or game version, that you're following the n-0/y-1 guidelines, or it will be rejected.
If you would like to contribute to artemis, either by adding features, games, or fixing bugs, you can do so by forking the repo and submitting a pull request [here](https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls). This guide assume you're familiar with both git, python, and the libraries that artemis uses.
This document is a work in progress. If you have any questions or notice any errors, please report it to the discord.
## Adding games
Guide WIP
### Step 0
+ Follow the "n-1" rule of thumb. PRs for game versions that are currently active in arcades will be deleted. If you're unsure, ask!
+ Always PR against the `develop` branch.
+ Check to see if somebody else is already PRing the features/games you want to add. If they are, consider contributing to them rather then making an entirely new PR.
+ We don't technically have a written code style guide (TODO) but try to keep your code consistant with code that's already there where possible.
### Step 1 (Setup)
1) Fork the gitea repo, clone your fork, and checkout the develop branch.
2) Make a new folder in the `titles` folder, name it some recogniseable shorthand for your game (Chunithm becomes chuni, maimai dx is mai2, etc)
3) In this new folder, create a file named `__init__.py`. This is the first thing that will load when your title module is loaded by the core system, and it acts as sort of a directory for where everything lives in your module. This file will contain the following required items:
+ `index`: must point to a subclass of `BaseServlet` that will handle setup and dispatching of your game.
+ `game_codes`: must be a list of 4 letter SEGA game codes as strings.
It can also contain the following optional fields:
+ `database`: points to a subclass of `Data` that contains one or more subclasses of `BaseData` that act as database transaction handlers. Required for the class to store and retrieve data from the database.
+ `reader`: points to a subclass of `BaseReader` that handles importing static data from game files into the database.
+ `frontend`: points to a subclass of `FE_Base` that handles frontend routes for your game.
The next step will focus on `index`
### Step 2 (Index)
1) Create another file in your game's folder. By convention, it should be called `index.py`.
2) Inside `index.py`, add the following code, replacing {Game name here} with the name of your game, without spaces or special characters. Look at other titles for examples.
```py
from core.title import BaseServlet
from core import CoreConfig
class {Game name here}Servlet(BaseServlet):
def __init__(self, core_cfg: CoreConfig, cfg_dir: str) -> None:
pass
```
3) The `__init__` function should acomplish the following:
+ Reading your game's config
+ Setting up your games logger
+ Instancing your games versions
It's usually safe to copy and paste the `__init__` functions from other games, just make sure you change everything that needs to be changed!
4) Go back to the `__init__.py` that you created and add the following:
```py
from .index import {Game name here}Servlet
index = {Game name here}Servlet
```
5) Going back to `index.py`, within the Servlet class, define the following functions from `BaseServlet` as needed (see function documentation):
+ `is_game_enabled`: Returns true if the game is enabled and should be served, false otherwise. Returns false by default, so override this to allow your game to be served.
+ `get_routes`: Returns a list of Starlette routes that your game will serve.
+ `get_allnet_info`: Returns a tuple of strings where the first is the allnet uri and the second is the allnet host. The function takes the game ID, version and keychip ID as parameters, so you can send different responses if need be.
+ `get_mucha_info`: Only used by games that use Mucha as authentication. Returns a tuple where the first is a bool that is weather or not the game is enabled, the 2nd is a list of game CDs as strings that this servlet should handle, and the 3rd is a list of netID prefixes that each game CD should use. If your game does not use mucha, do not define this function.
+ `setup`: Preforms any setup your servlet requires, such as spinning up matching servers. It is run once when the server starts. If you don't need any setup, do not define.
6) Make sure any functions you specify to handle routes in `get_routes` are defined as async, as follows: `async def handle_thing(self, request: Request) -> Response:` where Response is whatever kind of Response class you'll be returning. Make sure all paths in this function return some subclass of Response, otherwise you'll get an error when serving.
### Step 3 (Constants)
1) In your game's folder, create a file to store static values for your game. By convention, we call this `const.py`
2) Inside, create a class called `{Game name here}Constants`. Do not define an `__init__` function.
3) Put constants related to your game here. A good example of something to put here is game codes.
```py
class {Game name here}Constants:
GAME_CODE = "SBXX"
CONFIG_NAME = "{game name}.yaml"
```
4) If you choose to put game codes in here, add this to your `__init__.py` file:
```py
from .const import {Game name here}Constants
...
game_codes = [{Game name here}Constants.GAME_CODE]
```
### Step 4 (Config)
1) Make a file to store your game's config. By convention, it should be called `config.py`
2) Inside that file, add the following:
```py
from core.config import CoreConfig
class {game name}ServerConfig:
def __init__(self, parent_config: "{game name}Config") -> None:
self.__config = parent_config
@property
def enable(self) -> bool:
return CoreConfig.get_config_field(
self.__config, "{game name}", "server", "enable", default=True
)
@property
def loglevel(self) -> int:
return CoreConfig.str_to_loglevel(
CoreConfig.get_config_field(
self.__config, "{game name}", "server", "loglevel", default="info"
)
)
class {game name}Config(dict):
def __init__(self) -> None:
self.server = {game name}ServerConfig(self)
```
3) In the `example_config` folder, create a yaml file for your game. By convention, it should be called `{game folder name}.ymal`. Add the following:
```yaml
server:
enable: True
loglevel: "info"
```
4) Add any additional config options that you feel the game needs. Look to other games for config examples.
5) In `index.py` import your config and instance it in `__init__` with:
```py
self.game_cfg = {game folder name}Config()
if path.exists(f"{cfg_dir}/{game folder name}Constants.CONFIG_NAME}"):
self.game_cfg.update(
yaml.safe_load(open(f"{cfg_dir}/{game folder name}Constants.CONFIG_NAME}"))
)
```
This will attempt to load the config file you specified in your constants, and if not, go with the defaults specified in `config.py`. This game_cfg object can then be passed down to your handlers when you create them.
At this stage your game should be loaded by allnet, and serve whatever routes you put in `get_routes`. See the next section about adding versions and handlers.
### Step 5 (Database)
TODO
### Step 6 (Frontend)
TODO
### Step 7 (Reader)
TODO
## Adding game versions
Guide WIP
See the above section about code expectations and how to PR.
1) In the game's folder, create a python file to contain the version handlers. By convention, the first version is version 0, and is stored in `base.py`. Versions following that increment the version number, and are stored in `{short version name}.py`. See Wacca's folder for an example of how to name versions.
2) Internal version numbers should be defined in `const.py`. The version should change any time the game gets a major update (i.e. a new version or plus version.)
```py
# in const.py
VERSION_{game name} = 0
VERSION_{game name}_PLUS = 1
```
3) Inside `base.py` (or whatever your version is named) add the following:
```py
class {game name}Base:
def __init__(self, cfg: CoreConfig, game_cfg: {game name}Config) -> None:
self.game_config = game_cfg
self.core_config = cfg
self.version = {game name}Constants.VERSION_{game name}
self.data = {game name}Data(cfg)
# Any other initialization stuff
```
4) Define your handlers. This will vary wildly by game, but best practice is to keep the naming consistant, so that the main dispatch function in `index.py` can use `getattr` to get the handler, rather then having a static list of what endpoint or request type goes to which handler. See Wacca's `index.py` and `base.py` for examples of how to do this.
5) If your version is not the base version, make sure it inherits from the base version:
```py
class {game name}Plus({game name}Base):
def __init__(self, cfg: CoreConfig, game_cfg: {game name}Config) -> None:
super().__init__(cfg, game_cfg)
self.version = {game name}Constants.VERSION_{game name}_PLUS
```
6) Back in `index.py` make sure to import your new class, and add it to `__init__`. Some games may opt to just a single list called `self.versions` that contains all the version classes at their internal version's index. Others may simply define them as seperate members. See Wacca for an example of `self.versions`
7) Add your version to your game's dispatching logic.
8) Test to make sure your game is being handled properly.
9) Submit a PR.
## Adding/improving core services
If you intend to submit improvements or additions to core services (allnet, mucha, billing, aimedb, database, etc) please get in touch with a maintainer.

View File

@ -1,6 +1,6 @@
from core.config import CoreConfig
from core.allnet import AllnetServlet