music play + now playing
This commit is contained in:
@ -1,4 +1,3 @@
|
||||
import json
|
||||
import re
|
||||
|
||||
from discord import Interaction
|
||||
@ -50,8 +49,8 @@ class Sources:
|
||||
if data is None:
|
||||
return None
|
||||
|
||||
with open("search_result.json", "w") as file:
|
||||
file.write(json.dumps(data))
|
||||
# with open("search_result.json", "w") as file:
|
||||
# file.write(json.dumps(data))
|
||||
|
||||
entry = Entry(
|
||||
title=Title(name=data["title"], url=data["webpage_url"]),
|
||||
@ -62,71 +61,138 @@ class Sources:
|
||||
source=data["webpage_url"],
|
||||
)
|
||||
|
||||
await self.fileManager.download(interaction, [entry])
|
||||
entry.source = await anext(self.fileManager.download(interaction, [entry]))
|
||||
|
||||
return [entry]
|
||||
|
||||
if self.youtube_playlist_regex.match(query) is not None:
|
||||
data = await self.youtube.getData(query)
|
||||
data = await self.youtube.fetchData(query)
|
||||
if data is None:
|
||||
return None
|
||||
|
||||
with open("search_result.json", "w") as file:
|
||||
file.write(json.dumps(data))
|
||||
# with open("search_result.json", "w") as file:
|
||||
# file.write(json.dumps(data))
|
||||
|
||||
playlist = Playlist(
|
||||
title=data["title"],
|
||||
name=data["title"],
|
||||
url=data["webpage_url"],
|
||||
owner=Artist(name=data["channel"], url=data["channel_url"]),
|
||||
)
|
||||
|
||||
return [
|
||||
entries = [
|
||||
Entry(
|
||||
title=Title(name=data["title"], url=data["webpage_url"]),
|
||||
artist=Artist(name=data["channel"], url=data["channel_url"]),
|
||||
duration=data["duration"],
|
||||
thumbnail=data["thumbnail"],
|
||||
title=Title(
|
||||
name=entry_data["title"], url=entry_data["webpage_url"]
|
||||
),
|
||||
artist=Artist(
|
||||
name=entry_data["channel"], url=entry_data["channel_url"]
|
||||
),
|
||||
duration=entry_data["duration"],
|
||||
thumbnail=entry_data["thumbnail"],
|
||||
requesterId=interaction.user.id,
|
||||
playlist=playlist,
|
||||
source=data["url"],
|
||||
source=entry_data["webpage_url"],
|
||||
)
|
||||
for data in data["entries"]
|
||||
for entry_data in data["entries"]
|
||||
]
|
||||
|
||||
index = 0
|
||||
async for file in self.fileManager.download(interaction, entries):
|
||||
entries[index].source = file
|
||||
index += 1
|
||||
|
||||
return entries
|
||||
|
||||
if self.spotify_track_regex.match(query) is not None:
|
||||
data = await self.spotify.getTrack(query)
|
||||
|
||||
with open("spotify_track_result.json", "w") as file:
|
||||
file.write(json.dumps(data))
|
||||
# with open("spotify_track_result.json", "w") as file:
|
||||
# file.write(json.dumps(data))
|
||||
|
||||
return [
|
||||
Entry(
|
||||
title=Title(
|
||||
name=data["name"], url=data["external_urls"]["spotify"]
|
||||
),
|
||||
artist=Artist(
|
||||
name=data["artists"][0]["name"],
|
||||
url=data["artists"][0]["external_urls"]["spotify"],
|
||||
),
|
||||
album=Album(
|
||||
name=data["album"]["name"],
|
||||
url=data["album"]["external_urls"]["spotify"],
|
||||
),
|
||||
duration=0,
|
||||
thumbnail=data["album"]["images"][0]["url"],
|
||||
requesterId=interaction.user.id,
|
||||
)
|
||||
]
|
||||
entry = Entry(
|
||||
title=Title(name=data["name"], url=data["external_urls"]["spotify"]),
|
||||
artist=Artist(
|
||||
name=data["artists"][0]["name"],
|
||||
url=data["artists"][0]["external_urls"]["spotify"],
|
||||
),
|
||||
album=Album(
|
||||
name=data["album"]["name"],
|
||||
url=data["album"]["external_urls"]["spotify"],
|
||||
),
|
||||
duration=0,
|
||||
thumbnail=data["album"]["images"][0]["url"],
|
||||
requesterId=interaction.user.id,
|
||||
)
|
||||
|
||||
entry.source = await self.search(f"{entry.title.name} {entry.artist.name}")
|
||||
entry.source = await anext(self.fileManager.download(interaction, [entry]))
|
||||
|
||||
return [entry]
|
||||
|
||||
if (
|
||||
self.spotify_playlist_regex.match(query) is not None
|
||||
or self.spotify_album_regex.match(query) is not None
|
||||
or self.spotify_artist_regex.match(query) is not None
|
||||
):
|
||||
return
|
||||
data = await self.spotify.getPlaylist(query)
|
||||
|
||||
return await self.processQuery(interaction, await self.search(query))
|
||||
# with open("spotify_playlist_result.json", "w") as file:
|
||||
# file.write(json.dumps(data))
|
||||
|
||||
async def search(self, query) -> str:
|
||||
playlist = Playlist(
|
||||
name=data["name"],
|
||||
url=data["external_urls"]["spotify"],
|
||||
owner=Artist(
|
||||
name=data["owner"]["display_name"],
|
||||
url=data["owner"]["external_urls"]["spotify"],
|
||||
),
|
||||
)
|
||||
|
||||
entries = [
|
||||
Entry(
|
||||
title=Title(
|
||||
name=entry_data["track"]["name"],
|
||||
url=entry_data["track"]["external_urls"]["spotify"],
|
||||
),
|
||||
artist=Artist(
|
||||
name=entry_data["track"]["artists"][0]["name"],
|
||||
url=entry_data["track"]["artists"][0]["external_urls"][
|
||||
"spotify"
|
||||
],
|
||||
),
|
||||
album=Album(
|
||||
name=entry_data["track"]["album"]["name"],
|
||||
url=entry_data["track"]["album"]["external_urls"]["spotify"],
|
||||
),
|
||||
duration=0,
|
||||
thumbnail=entry_data["track"]["album"]["images"][0]["url"],
|
||||
requesterId=interaction.user.id,
|
||||
)
|
||||
for entry_data in data["tracks"]["items"]
|
||||
]
|
||||
|
||||
for entry in entries:
|
||||
entry.source = await self.search(
|
||||
f"{entry.title.name} {entry.artist.name}"
|
||||
)
|
||||
print(entry.source)
|
||||
|
||||
index = 0
|
||||
async for file in self.fileManager.download(interaction, entries):
|
||||
print(entries[index].source)
|
||||
entries[index].source = file
|
||||
print(entries[index].source)
|
||||
index += 1
|
||||
|
||||
return entries
|
||||
|
||||
searchResult = await self.search(query)
|
||||
if searchResult is None:
|
||||
return None
|
||||
return await self.processQuery(interaction, searchResult)
|
||||
|
||||
async def search(self, query) -> str | None:
|
||||
result = await self.youtube.searchVideo(query)
|
||||
return result["result"][0]["link"]
|
||||
if len(result) == 0:
|
||||
return None
|
||||
return result[0]["link"]
|
||||
|
Reference in New Issue
Block a user