forked from Hay1tsme/artemis
chuni: initial verse support
This commit is contained in:
@ -62,6 +62,7 @@ class ChuniReader(BaseReader):
|
||||
await self.read_character(f"{dir}/chara", dds_images, this_opt_id)
|
||||
await self.read_map_icon(f"{dir}/mapIcon", this_opt_id)
|
||||
await self.read_system_voice(f"{dir}/systemVoice", this_opt_id)
|
||||
await self.read_unlock_challenge(f"{dir}/unlockChallenge")
|
||||
|
||||
async def read_login_bonus(self, root_dir: str, opt_id: Optional[int] = None) -> None:
|
||||
for root, dirs, files in walk(f"{root_dir}loginBonusPreset"):
|
||||
@ -499,6 +500,38 @@ class ChuniReader(BaseReader):
|
||||
self.logger.info(f"Opt folder {opt_folder} (Database ID {opt_id}) contains {data_config['Version']['Name']} v{data_config['Version']['VerMajor']}.{data_config['Version']['VerMinor']}.{opt_seq}")
|
||||
return opt_id
|
||||
|
||||
async def read_unlock_challenge(self, uc_dir: str) -> None:
|
||||
for root, dirs, files in walk(uc_dir):
|
||||
for dir in dirs:
|
||||
if path.exists(f"{root}/{dir}/UnlockChallenge.xml"):
|
||||
with open(f"{root}/{dir}/UnlockChallenge.xml", "r", encoding="utf-8") as fp:
|
||||
strdata = fp.read()
|
||||
|
||||
xml_root = ET.fromstring(strdata)
|
||||
for name in xml_root.findall("name"):
|
||||
id = name.find("id").text
|
||||
name = name.find("str").text
|
||||
|
||||
course_ids = []
|
||||
for course in xml_root.find("musicList/list/UnlockChallengeMusicListSubData/unlockChallengeMusicData/courseList/list").findall("UnlockChallengeCourseListSubData"):
|
||||
course_id = course.find("unlockChallengeCourseData/courseName").find("id").text
|
||||
course_ids.append(course_id)
|
||||
|
||||
# Build keyword arguments dynamically for up to 5 course IDs
|
||||
course_kwargs = {
|
||||
f"course_id{i+1}": course_ids[i]
|
||||
for i in range(min(5, len(course_ids)))
|
||||
}
|
||||
|
||||
result = await self.data.static.put_unlock_challenge(
|
||||
self.version, id, name,
|
||||
**course_kwargs
|
||||
)
|
||||
if result is not None:
|
||||
self.logger.info(f"Inserted unlock challenge {id}")
|
||||
else:
|
||||
self.logger.warning(f"Failed to unlock challenge {id}")
|
||||
|
||||
def copy_image(self, filename: str, src_dir: str, dst_dir: str) -> None:
|
||||
# Convert the image to png so we can easily display it in the frontend
|
||||
file_src = path.join(src_dir, filename)
|
||||
|
Reference in New Issue
Block a user