diff --git a/titles/chuni/index.py b/titles/chuni/index.py index dd49cc6..144f770 100644 --- a/titles/chuni/index.py +++ b/titles/chuni/index.py @@ -94,14 +94,19 @@ class ChuniServlet(BaseServlet): known_iter_counts = { ChuniConstants.VER_CHUNITHM_CRYSTAL_PLUS: 67, + f"{ChuniConstants.VER_CHUNITHM_CRYSTAL_PLUS}_int": 25, # SUPERSTAR ChuniConstants.VER_CHUNITHM_PARADISE: 44, - f"{ChuniConstants.VER_CHUNITHM_PARADISE}_int": 25, + f"{ChuniConstants.VER_CHUNITHM_PARADISE}_int": 51, # SUPERSTAR PLUS ChuniConstants.VER_CHUNITHM_NEW: 54, f"{ChuniConstants.VER_CHUNITHM_NEW}_int": 49, ChuniConstants.VER_CHUNITHM_NEW_PLUS: 25, + f"{ChuniConstants.VER_CHUNITHM_NEW_PLUS}_int": 31, ChuniConstants.VER_CHUNITHM_SUN: 70, + f"{ChuniConstants.VER_CHUNITHM_SUN}_int": 35, ChuniConstants.VER_CHUNITHM_SUN_PLUS: 36, + f"{ChuniConstants.VER_CHUNITHM_SUN_PLUS}_int": 36, ChuniConstants.VER_CHUNITHM_LUMINOUS: 8, + f"{ChuniConstants.VER_CHUNITHM_LUMINOUS}_int": 8, } for version, keys in self.game_cfg.crypto.keys.items(): @@ -233,8 +238,10 @@ class ChuniServlet(BaseServlet): elif version >= 220: # LUMINOUS internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS elif game_code == "SDGS": # Int - if version < 110: # SUPERSTAR / SUPERSTAR PLUS - internal_ver = ChuniConstants.VER_CHUNITHM_PARADISE # SUPERSTAR / SUPERSTAR PLUS worked fine with it + if version < 105: # SUPERSTAR + internal_ver = ChuniConstants.VER_CHUNITHM_CRYSTAL_PLUS + elif version >= 105 and version < 110: # SUPERSTAR PLUS *Cursed but needed due to different encryption key + internal_ver = ChuniConstants.VER_CHUNITHM_PARADISE elif version >= 110 and version < 115: # NEW internal_ver = ChuniConstants.VER_CHUNITHM_NEW elif version >= 115 and version < 120: # NEW PLUS!! @@ -353,9 +360,9 @@ class ChuniServlet(BaseServlet): padded = pad(zipped, 16) crypt = AES.new( - bytes.fromhex(self.game_cfg.crypto.keys[internal_ver][0]), + bytes.fromhex(self.game_cfg.crypto.keys[crypto_cfg_key][0]), AES.MODE_CBC, - bytes.fromhex(self.game_cfg.crypto.keys[internal_ver][1]), + bytes.fromhex(self.game_cfg.crypto.keys[crypto_cfg_key][1]), ) return Response(crypt.encrypt(padded)) diff --git a/titles/chuni/sun.py b/titles/chuni/sun.py index 94dc1eb..4957c4b 100644 --- a/titles/chuni/sun.py +++ b/titles/chuni/sun.py @@ -16,4 +16,14 @@ class ChuniSun(ChuniNewPlus): # hardcode lastDataVersion for CardMaker 1.35 A032 user_data["lastDataVersion"] = "2.10.00" - return user_data \ No newline at end of file + return user_data + + #SDGS Exclusive + async def handle_get_user_cto_c_play_api_request(self, data: Dict) -> Dict: + return { + "userId": data["userId"], + "orderBy": "0", + "count": "0", + #game request c2c play history while login but seem unused(?) + "userCtoCPlayList": [], + } \ No newline at end of file