From 9b7d06a2f9751ec6e03f7949488e7cec6cb2d1eb Mon Sep 17 00:00:00 2001 From: 283375 Date: Sat, 17 Jun 2023 02:19:46 +0800 Subject: [PATCH] feat(db): `validate_chart(song_id, rating_class)` --- src/arcaea_offline/database.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/arcaea_offline/database.py b/src/arcaea_offline/database.py index 349fd4e..b2dc1fe 100644 --- a/src/arcaea_offline/database.py +++ b/src/arcaea_offline/database.py @@ -27,13 +27,6 @@ class Database(metaclass=Singleton): def conn(self): return self.__conn - def validate_song_id(self, song_id): - with self.conn as conn: - cursor = conn.cursor() - cursor.execute("SELECT COUNT(*) FROM charts WHERE song_id = ?", (song_id,)) - result = cursor.fetchone() - return result[0] > 0 - def update_arcsong_db(self, path: Union[str, bytes]): with sqlite3.connect(path) as arcsong_conn: arcsong_cursor = arcsong_conn.cursor() @@ -126,6 +119,23 @@ class Database(metaclass=Singleton): def get_charts_by_package_id(self, package_id: str): return self.__get_table("charts", DbChartRow, "package_id = ?", (package_id,)) + def validate_song_id(self, song_id): + with self.conn as conn: + cursor = conn.cursor() + cursor.execute("SELECT COUNT(*) FROM charts WHERE song_id = ?", (song_id,)) + result = cursor.fetchone() + return result[0] > 0 + + def validate_chart(self, song_id: str, rating_class: int): + with self.conn as conn: + cursor = conn.cursor() + cursor.execute( + "SELECT COUNT(*) FROM charts WHERE song_id = ? AND rating_class = ?", + (song_id, rating_class), + ) + result = cursor.fetchone() + return result[0] > 0 + class FuzzySearchSongIdResult(NamedTuple): song_id: str confidence: int