feat(db): validate_chart(song_id, rating_class)

This commit is contained in:
283375 2023-06-17 02:19:46 +08:00
parent 2fd9478b6a
commit 9b7d06a2f9

View File

@ -27,13 +27,6 @@ class Database(metaclass=Singleton):
def conn(self): def conn(self):
return self.__conn 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]): def update_arcsong_db(self, path: Union[str, bytes]):
with sqlite3.connect(path) as arcsong_conn: with sqlite3.connect(path) as arcsong_conn:
arcsong_cursor = arcsong_conn.cursor() arcsong_cursor = arcsong_conn.cursor()
@ -126,6 +119,23 @@ class Database(metaclass=Singleton):
def get_charts_by_package_id(self, package_id: str): def get_charts_by_package_id(self, package_id: str):
return self.__get_table("charts", DbChartRow, "package_id = ?", (package_id,)) 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): class FuzzySearchSongIdResult(NamedTuple):
song_id: str song_id: str
confidence: int confidence: int