소스 검색

artist name split

Sv443 3 년 전
부모
커밋
973e913080
1개의 변경된 파일16개의 추가작업 그리고 2개의 파일을 삭제
  1. 16 2
      BetterYTM.user.js

+ 16 - 2
BetterYTM.user.js

@@ -508,16 +508,30 @@ function getGeniusUrl()
             return (sanitized || songName).trim();
         };
 
+        /** @param {string} songMeta */
+        const splitArtist = (songMeta) => {
+            songMeta = songMeta.split(/\s*\u2022\s*/gmiu)[0]; // split at • (•) character
+
+            if(songMeta.match(/&/))
+                songMeta = songMeta.split(/\s*&\s*/gm)[0];
+
+            if(songMeta.match(/,/))
+                songMeta = songMeta.split(/,\s*/gm)[0];
+
+            return songMeta;
+        }
+
         const songNameRaw = songTitleElem.title;
         const songName = sanitizeSongName(songNameRaw);
 
-        const songMeta = songMetaElem.title;
-        const artistName = songMeta.split(/\s*\u2022\s*/gmiu)[0]; // split at • (•) character
+        const artistName = splitArtist(songMetaElem.title);
+
         // TODO: artist might need further splitting before comma or ampersand
 
         const sn = encodeURIComponent(songName);
         const an = encodeURIComponent(artistName);
 
+        /** Autoclick URL params */
         const acParams = features.geniusAutoclickBestResult ? `&bytm-ac-sn=${sn}&bytm-ac-an=${an}` : "";
 
         const url = `https://genius.com/search?q=${sn}%20${an}${acParams}`;