Use snake_case for all database keys

This commit is contained in:
Choco
2025-08-04 10:57:54 +08:00
parent c8fa4e561a
commit d9fb58ef92
16 changed files with 47 additions and 37 deletions

View File

@@ -99,16 +99,16 @@ class Settings(commands.Cog, name="settings"):
@settings.command(name="queue", aliases=get_aliases("queue"))
@app_commands.choices(mode=[
app_commands.Choice(name="FairQueue", value="FairQueue"),
app_commands.Choice(name="Queue", value="Queue")
app_commands.Choice(name=queue_type.capitalize(), value=queue_type)
for queue_type in voicelink.queue.QUEUE_TYPES.keys()
])
@commands.has_permissions(manage_guild=True)
@commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild)
async def queue(self, ctx: commands.Context, mode: str):
"Change to another type of queue mode."
mode = "FairQueue" if mode.lower() == "fairqueue" else "Queue"
await update_settings(ctx.guild.id, {"$set": {"queueType": mode}})
await send(ctx, "setqueue", mode)
mode = mode if mode.lower() in voicelink.queue.QUEUE_TYPES else next(iter(voicelink.queue.QUEUE_TYPES))
await update_settings(ctx.guild.id, {"$set": {"queue_type": mode}})
await send(ctx, "setQueue", mode.capitalize())
@settings.command(name="247", aliases=get_aliases("247"))
@commands.has_permissions(manage_guild=True)
@@ -126,8 +126,8 @@ class Settings(commands.Cog, name="settings"):
async def bypassvote(self, ctx: commands.Context):
"Toggles voting system."
settings = await get_settings(ctx.guild.id)
toggle = settings.get('votedisable', True)
await update_settings(ctx.guild.id, {"$set": {'votedisable': not toggle}})
toggle = settings.get('disabled_vote', True)
await update_settings(ctx.guild.id, {"$set": {'disabled_vote': not toggle}})
await send(ctx, 'bypassVote', await get_lang(ctx.guild.id, "enabled" if not toggle else "disabled"))
@settings.command(name="view", aliases=get_aliases("view"))
@@ -149,16 +149,16 @@ class Settings(commands.Cog, name="settings"):
settings.get('lang', 'EN'),
settings.get('controller', True),
dj_role.name if dj_role else 'None',
settings.get('votedisable', False),
settings.get('disabled_vote', False),
settings.get('24/7', False),
settings.get('volume', 100),
ctime(settings.get('playTime', 0) * 60 * 1000),
ctime(settings.get('played_time', 0) * 60 * 1000),
inline=True)
)
embed.add_field(name=texts[3], value=texts[4].format(
settings.get("queueType", "Queue"),
settings.get("queue_type", "Queue"),
func.settings.max_queue,
settings.get("duplicateTrack", True)
settings.get("duplicate_track", True)
))
if stage_template := settings.get("stage_announce_template"):
@@ -212,12 +212,12 @@ class Settings(commands.Cog, name="settings"):
async def duplicatetrack(self, ctx: commands.Context):
"Toggle Vocard to prevent duplicate songs from queuing."
settings = await get_settings(ctx.guild.id)
toggle = not settings.get('duplicateTrack', False)
toggle = not settings.get('duplicate_track', False)
player: voicelink.Player = ctx.guild.voice_client
if player:
player.queue._allow_duplicate = toggle
await update_settings(ctx.guild.id, {"$set": {'duplicateTrack': toggle}})
await update_settings(ctx.guild.id, {"$set": {'duplicate_track': toggle}})
return await send(ctx, "toggleDuplicateTrack", await get_lang(ctx.guild.id, "disabled" if toggle else "enabled"))
@settings.command(name="customcontroller", aliases=get_aliases("customcontroller"))
@@ -248,9 +248,9 @@ class Settings(commands.Cog, name="settings"):
async def silentmsg(self, ctx: commands.Context):
"Toggle silent messaging to send discreet messages without alerting recipients."
settings = await get_settings(ctx.guild.id)
toggle = not settings.get('silentMsg', False)
toggle = not settings.get('silent_msg', False)
await update_settings(ctx.guild.id, {"$set": {'silentMsg': toggle}})
await update_settings(ctx.guild.id, {"$set": {'silent_msg': toggle}})
await send(ctx, 'toggleSilentMsg', await get_lang(ctx.guild.id, "enabled" if toggle else "disabled"))
@settings.command(name="stageannounce", aliases=get_aliases("stageannounce"))

View File

@@ -223,7 +223,7 @@ async def send(
"embed": embed,
"ephemeral": ephemeral,
"allowed_mentions": ALLOWED_MENTIONS,
"silent": settings.get("silentMsg", False),
"silent": settings.get("silent_msg", False),
}
if "delete_after" in send_func.__code__.co_varnames:

View File

@@ -12,12 +12,14 @@ RATELIMIT_COUNTER: Dict[int, Dict[str, float]] = {}
SCOPES = {
"prefix": str,
"lang": str,
"queueType": str,
"queue_type": str,
"dj": int,
"controller": bool,
"controller_msg": bool,
"24/7": bool,
"votedisable": bool,
"duplicateTrack": bool,
"disabled_vote": bool,
"duplicate_track": bool,
"silent_msg": bool,
"default_controller": dict,
"stage_announce_template": str
}

View File

@@ -15,7 +15,7 @@
"changedLanguage": "已成功切換到 `{0}` 語言包。",
"setPrefix": "完成!我的前綴在您的伺服器中現在是 `{0}`。嘗試運行 `{1}ping` 來測試它。",
"setDJ": "已將 DJ 設置為 {0}。",
"setqueue": "已將隊列模式設置為 `{0}`。",
"setQueue": "已將隊列模式設置為 `{0}`。",
"247": "現在您有 `{0}` 24/7 模式。",
"bypassVote": "現在您有 `{0}` 投票系統。",
"setVolume": "已將音量設置為 `{0}`%",

View File

@@ -15,7 +15,7 @@
"changedLanguage": "Erfolgreich auf das Sprachpaket `{0}` geändert.",
"setPrefix": "Erledigt! Mein Präfix ist jetzt `{0}` auf deinem Server. Versuche, `{1}ping` auszuführen, um es zu testen.",
"setDJ": "Stelle den DJ auf {0}.",
"setqueue": "Stelle den Warteschlangenmodus auf `{0}` ein.",
"setQueue": "Stelle den Warteschlangenmodus auf `{0}` ein.",
"247": "Der 24/7-Modus wurde erfolgreich `{0}`.",
"bypassVote": "Das Abstimmungssystem wurde `{0}`",
"setVolume": "Stelle die Lautstärke auf `{0}`%.",

View File

@@ -15,7 +15,7 @@
"changedLanguage": "Successfully changed to `{0}` language pack.",
"setPrefix": "Done! My prefix in your server is now `{0}`. Try running `{1}ping` to test it out.",
"setDJ": "Set the dj to {0}.",
"setqueue": "Set queue mode to `{0}`.",
"setQueue": "Set queue mode to `{0}`.",
"247": "24/7 mode is now `{0}`.",
"bypassVote": "You have `{0}` voting system.",
"setVolume": "Set the volume to `{0}`%",

View File

@@ -15,7 +15,7 @@
"changedLanguage": "Cambiado con éxito al paquete de idioma `{0}`.",
"setPrefix": "¡Listo! Mi prefijo en tu servidor ahora es `{0}`. Intenta ejecutar `{1}ping` para probarlo.",
"setDJ": "Establecer el DJ a {0}.",
"setqueue": "Establecer el modo de cola en `{0}`.",
"setQueue": "Establecer el modo de cola en `{0}`.",
"247": "Ahora tienes `{0}` modo 24/7.",
"bypassVote": "Ahora tienes `{0}` sistema de votación.",
"setVolume": "Ajustar el volumen a `{0}`%",

View File

@@ -15,7 +15,7 @@
"changedLanguage": "Changement réussi vers le pack de langue `{0}`.",
"setPrefix": "C'est fait ! Mon préfixe dans votre serveur est désormais `{0}`. Essayez de lancer `{1}ping` pour tester.",
"setDJ": "Le DJ a été défini sur {0}.",
"setqueue": "Le mode file d'attente est défini sur `{0}`.",
"setQueue": "Le mode file d'attente est défini sur `{0}`.",
"247": "Le mode 24/7 est maintenant `{0}`.",
"bypassVote": "Vous avez le système de vote `{0}`.",
"setVolume": "Le volume est réglé à `{0}`%",

View File

@@ -15,7 +15,7 @@
"changedLanguage": "「{0}」言語パックに正常に変更しました。",
"setPrefix": "完了!あなたのサーバーのプレフィックスは今や「{0}」です。 `{1}ping`を実行してテストしてみてください。",
"setDJ": "{0}にDJを設定しました。",
"setqueue": "キューモードを「{0}」に設定しました。",
"setQueue": "キューモードを「{0}」に設定しました。",
"247": "今、24/7モードは「{0}」です。",
"bypassVote": "今、投票システムは「{0}」になりました。",
"setVolume": "音量を「{0}%」に設定しました。",

View File

@@ -15,7 +15,7 @@
"changedLanguage": "성공적으로 `{0}` 언어 팩으로 변경되었습니다.",
"setPrefix": "완료되었습니다! 이 서버에서 내 접두사는 이제 `{0}`입니다. `{1}ping`을 실행하여 테스트해보세요.",
"setDJ": "DJ를 {0}(으)로 설정했습니다.",
"setqueue": "큐 모드를 `{0}`(으)로 설정했습니다.",
"setQueue": "큐 모드를 `{0}`(으)로 설정했습니다.",
"247": "이제 24/7 모드에서 `{0}`으로 변경되었습니다.",
"bypassVote": "이제 `{0}` 투표 시스템을 사용할 수 있습니다.",
"setVolume": "볼륨을 `{0}`%로 설정했습니다.",

View File

@@ -15,7 +15,7 @@
"changedLanguage": "Pomyślnie zmieniono pakiet językowy na: `{0}` .",
"setPrefix": "Gotowe! Mój prefix na tym serwerze to teraz `{0}`. Spróbuj uruchomić polecenie `{1}ping`, aby go przetestować.",
"setDJ": "Ustawiono DJ jako {0}.",
"setqueue": "Zmienionio tryb kolejki na `{0}`.",
"setQueue": "Zmienionio tryb kolejki na `{0}`.",
"247": "Tryb 24/7: `{0}`",
"bypassVote": "System głosowania: `{0}`",
"setVolume": "Ustawiono głośność na `{0}`%",

View File

@@ -15,7 +15,7 @@
"changedLanguage": "Язык успешно изменен на `{0}`.",
"setPrefix": "Готово! Мой префикс на вашем сервере теперь `{0}`. Попробуйте запустить `{1}ping`, чтобы проверить его.",
"setDJ": "Установить роль DJ {0}.",
"setqueue": "Установить режим очереди на `{0}`.",
"setQueue": "Установить режим очереди на `{0}`.",
"247": "Теперь у вас `{0}` режим 24/7.",
"bypassVote": "Теперь у вас `{0}` система голосования.",
"setVolume": "Установить громкость на `{0}`%",

View File

@@ -15,7 +15,7 @@
"changedLanguage": "Успішно змінено на мовний пакет `{0}`.",
"setPrefix": "Готово! Мій префікс на вашому сервері тепер `{0}`. Спробуйте запустити `{1}ping`, щоб перевірити його.",
"setDJ": "Встановити роль DJ {0}.",
"setqueue": "Встановити режим черги на `{0}`.",
"setQueue": "Встановити режим черги на `{0}`.",
"247": "Тепер у вас `{0}` режим 24/7.",
"bypassVote": "Тепер у вас `{0}` система голосування.",
"setVolume": "Встановити гучність на `{0}`%",

View File

@@ -31,7 +31,7 @@ import subprocess
from io import BytesIO
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
__version__ = "v2.7.2b2"
__version__ = "v2.7.2b3"
# URLs for update and migration
PYTHON_CMD_NAME = os.path.basename(sys.executable)

View File

@@ -51,8 +51,8 @@ from .exceptions import VoicelinkException, FilterInvalidArgument, TrackInvalidP
from .filters import Filter, Filters
from .objects import Track, Playlist
from .pool import Node, NodePool
from .queue import Queue, FairQueue
from .placeholders import Placeholders, build_embed
from .queue import Queue, QUEUE_TYPES
from random import shuffle, choice
async def connect_channel(ctx: Union[commands.Context, Interaction], channel: VoiceChannel = None):
@@ -115,7 +115,10 @@ class Player(VoiceProtocol):
self.settings: dict = settings
self.joinTime: float = round(time.time())
self._volume: int = self.settings.get('volume', 100)
self.queue: Queue = eval(self.settings.get("queueType", "Queue"))(self.settings.get("maxQueue", func.settings.max_queue), self.settings.get("duplicateTrack", True), self.get_msg)
self.queue: Queue = QUEUE_TYPES.get(self.settings.get("queue_type", "queue").lower())(
self.settings.get("max_queue", func.settings.max_queue),
self.settings.get("duplicate_track", True), self.get_msg
)
self._node = NodePool.get_node()
self._current: Optional[Track] = None
@@ -263,7 +266,7 @@ class Player(VoiceProtocol):
If `leave` is True and the channel has three members, the requirement adjusts to 2 votes.
"""
if self.settings.get('votedisable'):
if self.settings.get('disabled_vote'):
return 0
required = ceil((len(self.channel.members) - 1) / 2.5)
@@ -493,8 +496,8 @@ class Player(VoiceProtocol):
"""Cleans up the player and associated resources."""
try:
await func.update_settings(self.guild.id, {"$set": {
"lastActice": (timeNow := round(time.time())),
"playTime": round(self.settings.get("playTime", 0) + ((timeNow - self.joinTime) / 60), 2)
"last_active": (timeNow := round(time.time())),
"played_time": round(self.settings.get("played_time", 0) + ((timeNow - self.joinTime) / 60), 2)
}})
if self.is_ipc_connected:
@@ -711,7 +714,7 @@ class Player(VoiceProtocol):
await self.send_ws({
"op": "shuffleTrack",
"tracks": [{"trackId": track.track_id, "requesterId": str(track.requester.id)} for track in replacement],
"queueType": queue_type
"queue_type": queue_type
}, requester)
self._logger.debug(f"Player in {self.guild.name}({self.guild.id}) has been shuffled the queue.")
@@ -785,7 +788,7 @@ class Player(VoiceProtocol):
if self.is_ipc_connected:
await self.send_ws({
"op": "clearQueue",
"queueType": queue_type
"queue_type": queue_type
}, requester)
async def remove_filter(self, filter_tag: str, requester: Member = None, fast_apply: bool = False) -> Filters:

View File

@@ -223,3 +223,8 @@ class FairQueue(Queue):
self.put_at_index(lastIndex, item)
return lastIndex
QUEUE_TYPES: Dict[str, Queue] = {
"queue": Queue,
"fairqueue": FairQueue
}