mirror of
https://github.com/deadcxap/YandexMusicDiscordBot.git
synced 2026-01-12 09:21:40 +03:00
50 lines
2.0 KiB
Python
50 lines
2.0 KiB
Python
from typing import Any
|
|
from yandex_music import Track
|
|
|
|
from MusicBot.database.base import BaseGuildsDatabase
|
|
|
|
class VoiceGuildsDatabase(BaseGuildsDatabase):
|
|
|
|
def get_previous_tracks_list(self, gid: int) -> list[dict[str, Any]]:
|
|
guild = self.get_guild(gid)
|
|
return guild.get('previous_tracks_list')
|
|
|
|
def get_tracks_list(self, gid: int) -> list[dict[str, Any]]:
|
|
guild = self.get_guild(gid)
|
|
return guild.get('tracks_list')
|
|
|
|
def pop_track(self, gid: int) -> dict[str, Any]:
|
|
tracks_list = self.get_tracks_list(gid)
|
|
track = tracks_list.pop(0)
|
|
self.update(gid, {'tracks_list': tracks_list})
|
|
return track
|
|
|
|
def insert_track(self, gid: int, track: Track | dict[str, Any]) -> None:
|
|
if isinstance(track, Track):
|
|
track = track.to_dict(for_request=True)
|
|
tracks_list = self.get_tracks_list(gid)
|
|
tracks_list.insert(0, track)
|
|
self.update(gid, {'tracks_list': tracks_list})
|
|
|
|
def add_track(self, gid: int, track: Track) -> None:
|
|
tracks_list = self.get_tracks_list(gid)
|
|
tracks_list.append(track.to_dict(for_request=True))
|
|
self.update(gid, {'tracks_list': tracks_list})
|
|
|
|
def set_current_track(self, gid: int, track: Track) -> None:
|
|
self.update(gid, {'current_track': track.to_dict(for_request=True)})
|
|
|
|
def add_previous_track(self, gid: int, track: Track | dict[str, Any]) -> None:
|
|
tracks_list = self.get_previous_tracks_list(gid)
|
|
if isinstance(track, Track):
|
|
track = track.to_dict(for_request=True)
|
|
tracks_list.insert(0, track)
|
|
if len(tracks_list) > 50:
|
|
tracks_list.pop()
|
|
self.update(gid, {'previous_tracks_list': tracks_list})
|
|
|
|
def pop_previous_track(self, gid: int) -> dict[str, Any]:
|
|
tracks_list = self.get_previous_tracks_list(gid)
|
|
track = tracks_list.pop(0)
|
|
self.update(gid, {'previous_tracks_list': tracks_list})
|
|
return track |