diff --git a/aqua_importer.py b/aqua_importer.py index 0b0d831..86d53f8 100644 --- a/aqua_importer.py +++ b/aqua_importer.py @@ -409,6 +409,21 @@ class Importer: self.logger.info(f"Imported {version_str} userPlaylog: {tmp['musicId']}") + def get_ongeki_card_id_by_aqua_row(self, row: Row, user_id_column: str = "user_id"): + aqua_user_id = row._asdict()[user_id_column] + user_result = self.aqua.execute( + f"SELECT * FROM ongeki_user_data WHERE id = {aqua_user_id}" + ) + + # could never be None undless somethign is really fucked up + user_data = None + for user in user_result: + user_data = user._asdict() + + card_id = user_data["aime_card_id"] + + return card_id + def import_ongeki(self): game_cfg = OngekiConfig() game_cfg.update(yaml.safe_load(open(f"{self.config_folder}/ongeki.yaml"))) @@ -428,8 +443,8 @@ class Importer: tmp = self.parse_aqua_row( row, datetime_columns, - unused_columns=["id"], - user_id_column="aimeCardId", + unused_columns=["id", "aimeCardId"], + card_id=row._asdict()["aime_card_id"], ) # useless but required tmp["accessCode"] = "" @@ -442,10 +457,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_option") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) tmp.pop("dispbp") @@ -457,7 +471,10 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_general_data") for row in result: - tmp = self.parse_aqua_row(row, datetime_columns, unused_columns=["id"]) + user = self.get_ongeki_card_id_by_aqua_row(row) + tmp = self.parse_aqua_row( + row, datetime_columns, unused_columns=["id"], card_id=user + ) if tmp["propertyKey"] == "recent_rating_list": rating_list = [] @@ -484,10 +501,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_deck") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -498,10 +514,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_activity") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) tmp["id"] = tmp["activityId"] tmp.pop("activityId") @@ -514,10 +529,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_card") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -528,10 +542,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_chapter") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -542,10 +555,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_character") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -558,10 +570,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_deck") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -572,10 +583,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_item") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -586,10 +596,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_item") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -600,10 +609,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_memory_chapter") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -619,10 +627,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_mission_point") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -638,10 +645,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_music_detail") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -654,10 +660,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_playlog") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -668,10 +673,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_story") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request( @@ -682,10 +686,9 @@ class Importer: result, datetime_columns = self.parse_aqua_db("ongeki_user_tech_count") for row in result: + user = self.get_ongeki_card_id_by_aqua_row(row) tmp = self.parse_aqua_row( - row, - datetime_columns, - unused_columns=["id"], + row, datetime_columns, unused_columns=["id"], card_id=user ) base.handle_upsert_user_all_api_request(