feat(search): 기본 검색을 유튜브뮤직 우선 → 없/이상하면 ytsearch+Topic 폴백으로 변경(-p로 스포티파이 우선)
This commit is contained in:
@@ -95,8 +95,13 @@ export class LavalinkManager {
|
|||||||
player = player ?? this.getPlayer(guildId);
|
player = player ?? this.getPlayer(guildId);
|
||||||
if (!player) return;
|
if (!player) return;
|
||||||
const { isUrl, text, flags } = parseLink(query.trim());
|
const { isUrl, text, flags } = parseLink(query.trim());
|
||||||
let searchText = isUrl ? text : (await Spotify.getSearchUrl(text)) ?? (await YoutubeMusic.getSearchUrl(text)) ?? `ytsearch:${text}`;
|
// 기본: 유튜브뮤직(YoutubeMusic.getSearchUrl) 우선 → 결과가 없거나 애매(커버/방송/무관)하면
|
||||||
if (flags.has('y')) searchText = (await YoutubeMusic.getSearchUrl(text)) ?? `ytsearch:${text}`;
|
// getSearchUrl이 null을 주고, 공식 오디오를 잘 잡는 `ytsearch:... Topic`로 폴백한다.
|
||||||
|
// ('-p' 플래그를 붙이면 스포티파이 우선 검색)
|
||||||
|
let searchText: string;
|
||||||
|
if (isUrl) searchText = text;
|
||||||
|
else if (flags.has('p')) searchText = (await Spotify.getSearchUrl(text)) ?? (await YoutubeMusic.getSearchUrl(text)) ?? `ytsearch:${text}`;
|
||||||
|
else searchText = (await YoutubeMusic.getSearchUrl(text)) ?? `ytsearch:${text}`;
|
||||||
if (searchText.startsWith("ytsearch") && !flags.has('o')) searchText += " Topic";
|
if (searchText.startsWith("ytsearch") && !flags.has('o')) searchText += " Topic";
|
||||||
const result = await node.rest.resolve(searchText);
|
const result = await node.rest.resolve(searchText);
|
||||||
if (!result || result.loadType === LoadType.EMPTY || result.loadType === LoadType.ERROR) {
|
if (!result || result.loadType === LoadType.EMPTY || result.loadType === LoadType.ERROR) {
|
||||||
|
|||||||
Reference in New Issue
Block a user