from enum import Enum
import badwords as badwords

credentialsNickname = "praxis_bot"

test_module: bool = False
user_module: bool = True

autoJoin_TwitchChannel = "thecuriousnerd"
autoJoin_TwitchChannels = ["thecuriousnerd"]
allowedCommandsList_TwitchPowerUsers = ["thecuriousnerd", "lakotor", "blastofcynicism", "theredpoint"]
allowedTTS_List = ["thecuriousnerd", "lakotor", "blastofcynicism", "theredpoint", "<@76078763984551936>", "<@!76078763984551936>"]
adminUsers_List = ["thecuriousnerd", "<@!76078763984551936>"]

#Twitch Module Configs
block_TwitchChannelsMessaging = [""] # Blocks the ability to send messages to twitch channels
blockAll_TwitchChatChannelsMessaging = False # Blocks the ability to send messages to twitch channels

autoEnabled_TwitchTTS = False # Enables TTS for ALL
autoEnabled_TwitchTTS_SpeakersList_Only = False # Enables TTS for Allowed TTS List Only

#Discord Module Configs
block_DiscordChannelsMessaging = [""] # Blocks the ability to send messages to Discord channels
blockAll_DiscordChannelsMessaging = False # Blocks the ability to send messages to Discord channels
blockAll_DiscordPrivateMessaging = False # Private Messaging not yet implemented


autoEnabled_DiscordChannelsTTS = True
selected_DiscordTTSChannels = ["431129571308339210"]
block_DiscordChannelsTTS = [""] # block supersedes the tts_enabled bool
blockAll_DiscordChannelsTTS = False # blockAll supersedes the force bool and force list and tts_enabled bool
force_DiscordChannelsTTS = [""] # force supersedes the block list
forceAll_DiscordChatChannelsTTS = False # forceAll supersedes the blockAll bool and block list and force list


#User Module Configs
blockAll_TTS_URL_UserModule = True

#Chyron Module Configs
chyronListSpaceCount = 25

#Lights Module Configs
colorParse_maxDigits = 4


#General Configs
skip_splashScreen = False
skip_splashScreenClear = False
skip_splashScreenSleep = False

botList = ("Nightbot", "StreamElements", "Moobot", "Praxis Bot", "praxis_bot", "MEE6 +", "Nerdy", "Rythm", "Groovy")

class FileNameStrategy(Enum):
    TIME_BASED = 1
    CONTENT_BASED = 2

fileNameStrategy = FileNameStrategy.CONTENT_BASED

#OLD CLASS WILL DELETE
class DBStrategy(Enum):
    SQLite = 1
    MySQL = 2
#OLD CONFIGS WILL BE DELETED SOON
#dbStrategy = DBStrategy.SQLite


#TTS Configs
is_tts_Speaker_Enabled = False
is_tts_URL_Blocked = True

class Speaker(Enum):
    GOOGLE_TEXT_TO_SPEECH = 1
    STREAMLABS_API = 2

currentSpeaker = Speaker.GOOGLE_TEXT_TO_SPEECH

class PollyVoices(Enum):
    Aditi = "Aditi"
    Amy = "Amy"
    Astrid = "Astrid"
    Bianca = "Bianca"
    Brian = "Brian"
    Camila = "Camila"
    Carla = "Carla"
    Carmen = "Carmen"
    Celine = "Celine"
    Chantal = "Chantal"
    Conchita = "Conchita"
    Cristiano = "Cristiano"
    Dora = "Dora"
    Emma = "Emma"
    Enrique = "Enrique"
    Ewa = "Ewa"
    Filiz = "Filiz"
    Geraint = "Geraint"
    Giorgio = "Giorgio"
    Gwyneth = "Gwyneth"
    Hans = "Hans"
    Ines = "Ines"
    Ivy = "Ivy"
    Jacek = "Jacek"
    Jan = "Jan"
    Joanna = "Joanna"
    Joey = "Joey"
    Justin = "Justin"
    Karl = "Karl"
    Kendra = "Kendra"
    Kimberly = "Kimberly"
    Lea = "Lea"
    Liv = "Liv"
    Lotte = "Lotte"
    Lucia = "Lucia"
    Lupe = "Lupe"
    Mads = "Mads"
    Maja = "Maja"
    Marlene = "Marlene"
    Mathieu = "Mathieu"
    Matthew = "Matthew"
    Maxim = "Maxim"
    Mia = "Mia"
    Miguel = "Miguel"
    Mizuki = "Mizuki"
    Naja = "Naja"
    Nicole = "Nicole"
    Penelope = "Penelope"
    Raveena = "Raveena"
    Ricardo = "Ricardo"
    Ruben = "Ruben"
    Russell = "Russell"
    Salli = "Salli"
    Seoyeon = "Seoyeon"
    Takumi = "Takumi"
    Tatyana = "Tatyana"
    Vicki = "Vicki"
    Vitoria = "Vitoria"
    Zeina = "Zeina"
    Zhiyu = "Zhiyu"

PollyVoice = PollyVoices.Justin


#Misc Configs
slurList = badwords.slurList

praxisVersion_Alpha = "A.0 "
praxisVersion_Delta = "D.1 "
praxisVersion_Omega = "O.0 "
