40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
import DB
|
|
|
|
|
|
class SpeakersSettingsAdapterDiscord:
|
|
def get_speaker(self, guild_id: int, user_id: int) -> str:
|
|
user_defined_speaker = self.get_speaker_user(guild_id, user_id)
|
|
if user_defined_speaker is None:
|
|
return self.get_speaker_global(guild_id)
|
|
|
|
else:
|
|
return user_defined_speaker
|
|
|
|
def get_speaker_global(self, guild_id: int) -> str | None:
|
|
server_speaker_query = DB.ServerSpeaker.select()\
|
|
.where(DB.ServerSpeaker.server_id == guild_id)
|
|
|
|
if server_speaker_query.count() == 1:
|
|
return server_speaker_query.get().speaker
|
|
|
|
else:
|
|
return None
|
|
|
|
def get_speaker_user(self, guild_id: int, user_id: int) -> str | None:
|
|
user_speaker_query = DB.UserServerSpeaker.select()\
|
|
.where(DB.UserServerSpeaker.server_id == guild_id)\
|
|
.where(DB.UserServerSpeaker.user_id == user_id)
|
|
|
|
if user_speaker_query.count() == 1:
|
|
return user_speaker_query.get().speaker
|
|
|
|
else:
|
|
return None
|
|
|
|
def set_speaker_user(self, guild_id: int, user_id: int, speaker: str) -> None:
|
|
DB.UserServerSpeaker.replace(server_id=guild_id, user_id=user_id, speaker=speaker).execute()
|
|
|
|
def set_speaker_global(self, guild_id: int, user_id: int, speaker: str) -> None:
|
|
DB.ServerSpeaker.replace(server_id=guild_id, speaker=speaker).execute()
|