This commit is contained in:
codey 2025-02-26 20:47:29 -05:00
parent 5d4335f92d
commit 1ab5adfc2d
4 changed files with 11 additions and 8 deletions

View File

@ -21,7 +21,7 @@ class RadioUtil:
def __init__(self, constants) -> None: def __init__(self, constants) -> None:
self.constants = constants self.constants = constants
self.gpt = gpt.GPT(self.constants) self.gpt = gpt.GPT(self.constants)
self.ls_uri: str = "http://10.10.10.101:29000" self.ls_uri: str = self.constants.LS_URI
self.sqlite_exts: list[str] = ['/home/singer/api/solibs/spellfix1.cpython-311-x86_64-linux-gnu.so'] self.sqlite_exts: list[str] = ['/home/singer/api/solibs/spellfix1.cpython-311-x86_64-linux-gnu.so']
self.active_playlist_path: Union[str, LiteralString] = os.path\ self.active_playlist_path: Union[str, LiteralString] = os.path\
.join("/usr/local/share", .join("/usr/local/share",
@ -146,7 +146,7 @@ class RadioUtil:
""" """
db_query: str = """SELECT distinct(LOWER(TRIM(artist)) || " - " || LOWER(TRIM(song))), (TRIM(artist) || " - " || TRIM(song)) AS artistdashsong, id, artist, song, genre, file_path, duration FROM tracks\ db_query: str = """SELECT distinct(LOWER(TRIM(artist)) || " - " || LOWER(TRIM(song))), (TRIM(artist) || " - " || TRIM(song)) AS artistdashsong, id, artist, song, genre, file_path, duration FROM tracks\
WHERE genre LIKE "%metalcore%"\ WHERE (genre LIKE "%metalcore%"\
OR genre LIKE "%rock%"\ OR genre LIKE "%rock%"\
OR genre LIKE "%pop punk%"\ OR genre LIKE "%pop punk%"\
OR genre LIKE "%math rock%"\ OR genre LIKE "%math rock%"\
@ -178,7 +178,8 @@ class RadioUtil:
OR genre LIKE "%synthwave%"\ OR genre LIKE "%synthwave%"\
OR genre LIKE "%trap%"\ OR genre LIKE "%trap%"\
OR genre LIKE "%indie pop%"\ OR genre LIKE "%indie pop%"\
OR genre LIKE "untagged"\ OR genre LIKE "%dnb%"\
OR genre LIKE "untagged")\
GROUP BY artistdashsong ORDER BY RANDOM()""" GROUP BY artistdashsong ORDER BY RANDOM()"""
""" """
@ -186,7 +187,7 @@ class RadioUtil:
""" """
# db_query = 'SELECT distinct(artist || " - " || song) AS artistdashsong, id, artist, song, genre, file_path, duration FROM tracks\ # db_query = 'SELECT distinct(artist || " - " || song) AS artistdashsong, id, artist, song, genre, file_path, duration FROM tracks\
# WHERE artist LIKE "%bad omens%" GROUP BY artistdashsong ORDER BY RANDOM()' # WHERE artist LIKE "%wage war%" GROUP BY artistdashsong ORDER BY id DESC'
async with sqlite3.connect(self.active_playlist_path, async with sqlite3.connect(self.active_playlist_path,
timeout=2) as db_conn: timeout=2) as db_conn:

View File

@ -34,7 +34,7 @@ class Transcriptions(FastAPI):
db_query: Optional[str] = None db_query: Optional[str] = None
show_title: Optional[str] = None show_title: Optional[str] = None
if not show_id: if not isinstance(show_id, int):
return JSONResponse(status_code=500, content={ return JSONResponse(status_code=500, content={
'err': True, 'err': True,
'errorText': 'Invalid request', 'errorText': 'Invalid request',

View File

@ -257,7 +257,7 @@ class Cache:
matched = self.get_matched(redis_results=redis_result, matched_candidate=candidate, matched = self.get_matched(redis_results=redis_result, matched_candidate=candidate,
confidence=confidence) confidence=confidence)
if matched: if matched and confidence >= 90:
time_end: float = time.time() time_end: float = time.time()
time_diff: float = time_end - time_start time_diff: float = time_end - time_start
matched.confidence = confidence matched.confidence = confidence
@ -295,7 +295,7 @@ class Cache:
candidate_tracks=result_tracks) candidate_tracks=result_tracks)
else: else:
best_match = (result_tracks[0], 100) best_match = (result_tracks[0], 100)
if not best_match: if not best_match or confidence < 90:
return None return None
(candidate, confidence) = best_match (candidate, confidence) = best_match
logging.info("Result found on %s", self.label) logging.info("Result found on %s", self.label)

View File

@ -41,6 +41,8 @@ class TrackMatcher:
for candidate in candidate_tracks: for candidate in candidate_tracks:
normalized_candidate = self._normalize_string(candidate[1]) normalized_candidate = self._normalize_string(candidate[1])
if normalized_candidate.strip().lower() == input_track.strip().lower():
return (candidate, 100.0)
# Calculate various similarity scores # Calculate various similarity scores
exact_score = 1.0 if input_track == normalized_candidate else 0.0 exact_score = 1.0 if input_track == normalized_candidate else 0.0