From f4ac2b7d6e7e50d3924c16f798664c42a60f6149 Mon Sep 17 00:00:00 2001 From: Broque Thomas Date: Sat, 9 Aug 2025 16:38:56 -0700 Subject: [PATCH] =?UTF-8?q?Ko=D0=AFn....?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matching_engine.cpython-312.pyc | Bin 29755 -> 29854 bytes core/matching_engine.py | 9 ++++++- .../music_database.cpython-310.pyc | Bin 36110 -> 48831 bytes .../music_database.cpython-312.pyc | Bin 75568 -> 76315 bytes database/music_database.py | 23 +++++++++++++++++- ui/pages/__pycache__/artists.cpython-312.pyc | Bin 255070 -> 255150 bytes ui/pages/artists.py | 3 ++- 7 files changed, 32 insertions(+), 3 deletions(-) diff --git a/core/__pycache__/matching_engine.cpython-312.pyc b/core/__pycache__/matching_engine.cpython-312.pyc index 02ae65c6a12547538ad4b68a6c20d7bea29bc6a4..9658a68749dc81616d25ff4959a256f2251801a6 100644 GIT binary patch delta 2700 zcmaJ?dvH|M8NcV=y?0;iChjiTL{zegf>&ZjVgZpr9)t*_1k6SZO~`t8_a@wAv%8#o z*Ah$`{-BOfYN1~(q0-XUW?lc)8FQEf$jov69hJ&6UoUaQr2fXl>=Qm{z z>2L^D#R6XX#}oYT^iSYX@4}?pkqt{9G95S7^BFCrQ;gM-Gr8~U)DfxfNM<4F$fiY& zyeiY18JE_gh$po}qlqCc?|5?5=r^)j#_?Y@GNflM6CbIvvJyV`wzNIR=sm)WPbiH{ zh38KzLbz-yG=D~xBEBa))ANKywJ-EO-FxPaWfukFU2%F|?1}XU2dBc(!}W*ik9v+R zITK#KuVq?dyuaA@`+7*pa`a;b!hH->IO#2i*Zs>#-2S^iNmfn}NAAmL{idqWCD(~M zz6}qwZ|+#Pwkf`ju0+;qG~g;m)(9hk2T8a6SzwH;Xhw!YYp&C$Ex7$3#r1f)4xttH zmNb#H{XxkhshOLQ|Lf?D+E*X6ZC2X}YMEqVD3RAJOQ%_rS*s0iBt!OaxK@f{(2g{u z?NWV3cQ>Qn7I?SpI5}hwM*mGhDRwd&Oa{3_FjCP?UbCkv&PhrKp5)==t(m(vB8j0> z?)o574GbJtRvXf3BkmtSu!eSYC7k#xW-RriN}%owV-=tBsFo`io@?IT~? zk5?~t`}25$rA9m8jl1$>%vP7wl6!f|_`_k|9L3Z%n%d#W{WMp|v#^XT)ldmTpxmGP zV1Lb0<>$C>gUOm$coQo6i%*ow=vtP&&p&I{C_0Mt!OFWYh%&Knubm8p@kwVzEyK#_ z^j^5UsyRB2qDL60Q5r|O6X79vu)ebGVMd}OyBwFEHY}PzRu{rngl!1lL+EDU$W%)k zIogY~E0rlE=_=&)AZ&-p`V<*}J5~>pgK%i|mt)&!dFuSR_u}bEgx?`dBA^%a_XvML z_`goj_fP~~pzkAa4?aNZLk1}}ovtppux5GaBetQ78B9p@W26UQX+x#*DI<3`LTp3WRu9YxFM^=!IW zMI)$zHRrhdb&FLurElR8uLqnC^cVu~=x31nEkd#2wd`=QGG2guQ*{}y*B6n^bL`^A zUWJLKYUMRNeHs4Lw4dyN?ahYr2_Ad_pEmCzz4p4b&&Z(}cA`piO7|l*jW+7vl^cxtBSBP~2jK{OY2ky?N$rXE|(;*5ku?~CR)=@$(gS+dI zExcfPbMQ9lX4lNAOWrWN`a^hem;rMFGfTgNaP7fVcQN`a@Mc#%X@zgQI!KkhVcQ-t zR=gA4SBmaeps6dU&Zk8b{?;A4g}+!yQZw~LDwpju(t4JC&!YTRSlk0-oBejr-7bZn ztb%_$0=3r+(*-Ctj90jdDt|`n_?*;@E{p6n;ei8=XoTxNG%*hu6G&+c9Iu`&upx_i#~{?eoV;T?XaE7@DO%%(s_-m`fO(}Q zjB<$KC|6S!V7Y!XHR#^SCa*b7AkbNEuTAflBfO>?nM(gJj^O&Tfv$&h#_ef7r;nhm za)g}-IfMvaf^X4Ik1}*z!)#R3dyqAbaG8NRkG3Pt8(|Qs#~3&g>u%oXl)nH4W8jt; zukBJEqZ2UmIm_r9PVgyCRlMql_VWX)2>F$Le()W!7X59f+-vlU)$tl8G+P}@QK13h zr+6vAscb(v4a;&S`3NR*3swG2!!KEJ@bK>(_p}<%xTp7^x&<@2a5sL*D2_FH6T(vn zixBv9!eK!#Ap{Y4=aix{uRoscJ8>%`S3y8msSBxQNaSO&G|R?b;i4FkebY5DIdU{U uEwI01@k{tO-Ae4E`GQDRK$-azc@B=7i^)d#!t5$(^Aq)=fJkp;=Kcd)^O{2d delta 2578 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 delta 10027 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 diff --git a/database/__pycache__/music_database.cpython-312.pyc b/database/__pycache__/music_database.cpython-312.pyc index 2c391fc74c3b06e2b4e1006f30d029bf518f88cd..90d252137698dd943dae33ff2a2f1153610a979c 100644 GIT binary patch delta 3935 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 delta 3261 zcmZve3se;6702h!&MphPz^c3-@>+qFw+MYCX00&Vp#0J!gM&zx&<)z4yDb zGf;P4XzUQYPI-EIaQI&(G0 zmF+jLL5}bYtDPnWN`e@K-v}vM6r>nwpcER2`K0JFo~~s^F>;l@C|3NoNdNzdjKWBp zXvJ(p@GD>rgBZO^C>kmjh!)8##$t9eX|zga$y_U0%5+*8gJ?r>oH+euL;b=1t@Rd^ zP>M>urt}bpqB35b@lr|g{c6{tUT@Vyj6+R=SWBlDBtJ>eQVC)_cAJRZCZInNze$q+ zYpJ5kJj7&_CTYc9Ri>aaSsbS26UqcJ71t>*^9+|lwRsrDH1rSaRSUHkn2wIrJ_oKx z;Ci??QcGl#1j*ccBLp!6chbaBxHDR!5}CM8*VY0Kw(kg8=p7-xv5G4ii6#5|y!a;i zGu%0MPAnA1NR)Y0S%!9x#j%(&8^7av-7c?yBlZw;@U)}F@mf0;ESigHGQ|S+8}C8I zqg<`^&TaxmX5s88cA{hv-|E#E#YwpH1~!975htVmO|&g&=b=3YZC5j{-y1J}2fbsL z#@J@6gDf*wvZWj2c|RSS78Al6KR2i!KFt*?GI^Wr&$J_1<>VkGz=WFTM#DyICAiCu|e;gDVMe zcC+1Bk;8GAD%)DVwYb>em z`@!;Mw4ENM3oFaYMX9n>k_*sL<%M9^Ci$=%b!ncJIDo1_Jjbozy3FiuODN0Ux;WC} z8TWzrm)6(|*7Uzx)0>OW7S29fDxI~apR<;owM1O=k7dSfKR5VdTz52EzwJ`wxYY6f z-0}2Gu2I(-J~&sWJE_y>8r606cfj-yYVT{pH|ommX8?FsuwxtSXI(qC z!(Fz1=TNx8j_k|~zeX|tAsBJI^1sP?PPj^V!Lfi{1yHY6?CQ~>?gtH7-cDgbc~!Mj zFPBvQP?CGtfrcQ1iL_?c-Y}Sd%CY+mKLtH2-!}wKs_XX65Fm=(Jn$#JOQ-HV7*A== zAD)2aLz)sHj!kZ|g+-BE>!i0TE~Cj8OBl*n(~luQHL0ya(hX|sCgB$0D?%ILHsKB; zU#6RPm)^Vb*X)HO!E}$z`-BH&f|+dIiQECyozoq+ic1$rC6)3l<~R|`rvU5d3}G3^{a~)@ z-nxz#c+Af_4*97~ZS6V`*osqyh6i-AeD=kuYOMu09 z#{11eztgK)E-9@jUQ|+DEy9Xx^luZj_v7;hR3YEGZmaF{B5ERRbc=~>;C7~U6{rOwCHKcM&6 zjVozkuHleWCR7os3GWbIu#dhQ$;(gJ?5l~8tggNqDd2w!2X0gs=i&A;-JGg8oBow) z^iPQ9f?NIXujS})4(vO7arMGtS$ccn5=owk8&!I2Ih;OnI5q!1TXAzZ6sfy2r*?*F?p_I3BIJuSwbf>`|R zAXvgC+%DqfWVQbGTp?&96&ylXPgq3QKw!-G-UgHQM%hGb8*92(3cphQ?jO|QTTlP`F0GdUkCQ?otAR(D#HuqQjpJ|%}2cenJ zLU0vOY;JJUpatzy9=kyy_&X*WVXw~6gh3@)Y~92Fhs6w)0IE{!2|>PEwLegXql9VH z!6X(wG)Vc}6Gp>$hu{TnIw*FS2S6u}s_TOwA1WLvK5$DgoFvV5B_t4{;I1+z5PU6d zTrJAJt-iY&({_wUdP3IwWGyEAny{5nPuNM= zO)yg2A+kOt93lLXa15}re1gn&r92cOpv|!+6bA7@-OC_RAKIYn;_%WqUAvr}T8LL= zKsXH1qqlpW<7pTi6yTiFV1+dOMND(haoq}^LhJ=fIgoIUP(&!CF7gphJ-w=Bn@;|_ zax@xJ^_Owmq4Y$93LVPFF%atdYtX5*$G|U47836z@hW9*EF=!mQU;SFgt7^F3rj0x rtzsxSsSo+G(ijV&a7XEgg+F`F4g{}mj@V@%rtGpo7K~S}+aTk={CjgQ diff --git a/database/music_database.py b/database/music_database.py index 1866ffd9..f799b879 100644 --- a/database/music_database.py +++ b/database/music_database.py @@ -874,6 +874,24 @@ class MusicDatabase: except Exception as e: logger.error(f"Error searching albums with title='{title}', artist='{artist}': {e}") return [] + + + + def _get_artist_variations(self, artist_name: str) -> List[str]: + """Returns a list of known variations for an artist's name.""" + variations = [artist_name] + name_lower = artist_name.lower() + + # Add more aliases here in the future + if "korn" in name_lower: + if "KoЯn" not in variations: + variations.append("KoЯn") + if "Korn" not in variations: + variations.append("Korn") + + # Return unique variations + return list(set(variations)) + def check_track_exists(self, title: str, artist: str, confidence_threshold: float = 0.8) -> Tuple[Optional[DatabaseTrack], float]: """ @@ -895,7 +913,10 @@ class MusicDatabase: # Try each title variation for title_variation in title_variations: # Search for potential matches with this variation - potential_matches = self.search_tracks(title=title_variation, artist=artist, limit=20) + potential_matches = [] + artist_variations = self._get_artist_variations(artist) + for artist_variation in artist_variations: + potential_matches.extend(self.search_tracks(title=title_variation, artist=artist_variation, limit=20)) if not potential_matches: continue diff --git a/ui/pages/__pycache__/artists.cpython-312.pyc b/ui/pages/__pycache__/artists.cpython-312.pyc index 3ecfe81d0774a739f37980ba4aee5cb4733b0313..ad4b43a0d095eebada742eb69d55c10c23eeed2d 100644 GIT binary patch delta 16526 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 delta 16569 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 ZS=w$w%LQc3@BUvO{(V`)L0`&&{{!Vi?;HRC diff --git a/ui/pages/artists.py b/ui/pages/artists.py index 2f5598ac..56b7bb12 100644 --- a/ui/pages/artists.py +++ b/ui/pages/artists.py @@ -732,7 +732,8 @@ class DatabaseLibraryWorker(QThread): # Try different artist combinations artists_to_try = spotify_album.artists[:2] if spotify_album.artists else [""] - + if "Korn" in artists_to_try: + artists_to_try.append("KoЯn") best_album = None best_confidence = 0.0 best_owned_tracks = 0