diff --git a/titles/chuni/read.py b/titles/chuni/read.py index 12b0d9e..eebdf8b 100644 --- a/titles/chuni/read.py +++ b/titles/chuni/read.py @@ -7,6 +7,7 @@ from PIL import Image from core.config import CoreConfig from titles.chuni.database import ChuniData from titles.chuni.const import ChuniConstants +from titles.chuni.schema.static import music as MusicTable class ChuniReader(BaseReader): @@ -144,6 +145,9 @@ class ChuniReader(BaseReader): self.logger.warning(f"Failed to insert event {id}") async def read_music(self, music_dir: str, we_diff: str = "4") -> None: + max_title_len = MusicTable.columns["title"].type.length + max_artist_len = MusicTable.columns["artist"].type.length + for root, dirs, files in walk(music_dir): for dir in dirs: if path.exists(f"{root}/{dir}/Music.xml"): @@ -154,9 +158,15 @@ class ChuniReader(BaseReader): for name in xml_root.findall("name"): song_id = name.find("id").text title = name.find("str").text + if len(title) > max_title_len: + self.logger.warning(f"Truncating music {song_id} song title") + title = title[:max_title_len] for artistName in xml_root.findall("artistName"): artist = artistName.find("str").text + if len(artist) > max_artist_len: + self.logger.warning(f"Truncating music {song_id} artist name") + artist = artist[:max_artist_len] for genreNames in xml_root.findall("genreNames"): for list_ in genreNames.findall("list"):