diff --git a/.gitignore b/.gitignore index 133f351..b7d5289 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ tts/ __pycache__/ +credentials/ diff --git a/credentials.py b/credentials.py new file mode 100644 index 0000000..7fbdc41 --- /dev/null +++ b/credentials.py @@ -0,0 +1,84 @@ +import os + +class Credentials_Module(): + def __init__(self): + super().__init__() + self.Twitch_Credentials_List:list + self.Discord_Credentials_List:list + self.DB_Credentials_List:list + + credentialLoadingFunctions = { # this is a mapping of the Credential enum to function pointers + Credential.Twitch_Credential: load_Twitch_Credential, + Credential.Discord_Credential: load_Discord_Credential, + Credential.DB_Credential: load_DB_Credential + } + + def load_credentials(self): + credentialPath = self.get_credentials_dir() + fileList:list = [] + for file in fileList: + fileName = "" + if fileName.lower().find("twitch") != -1: + credential_loading_function = self.credentialLoadingFunctions.get(Credential.Twitch_Credential) + output = credential_loading_function(fileName) + if fileName.lower().find("discord") != -1: + credential_loading_function = self.credentialLoadingFunctions.get(Credential.Discord_Credential) + output = credential_loading_function(fileName) + if fileName.lower().find("db") != -1: + credential_loading_function = self.credentialLoadingFunctions.get(Credential.DB_Credential) + output = credential_loading_function(fileName) + + #Based on similar function in tts.py + def get_credentials_dir(self): + dir = os.path.join(os.getcwd(), "credentials") # this is platform-agnostic + if not os.path.exists(dir): + os.mkdir(dir) + return dir + + def load_Twitch_Credential(self, fileName:str): + pass + + def load_Discord_Credential(self, fileName:str): + pass + + def load_DB_Credential(self, fileName:str): + pass + + +class Credential(Enum): + Twitch_Credential = 1 + Discord_Credential = 2 + DB_Credential = 3 + +class Twitch_Credential(): + #Username = Twitch Username + #Helix ID = https://dev.twitch.tv/console/apps + #Oauth = https://twitchapps.com/tmi/ + #V5 Client ID = https://twitchtokengenerator.com/ + def __init__(self): + super().__init__() + username = "" + helix = "" + oauth = "oauth:" + v5_Client = "" + +class Discord_Credential(): + #Discord Credentials explanations here. + def __init__(self): + super().__init__() + username = "" + +class DB_Credential(): + #engine = "mysql+mysqlconnector://root:password@localhost:3306/DatabaseName" + def __init__(self): + super().__init__() + self.username = "" + self.password = "" + self.ipAddress = "" + self.port = "" + self.databaseName = "" + self.engine_url = "" + + def create_engine_url(self): + new_engine_url = "mysql+mysqlconnector://" + self.username + ":" + self.password + "@" + self.ipAddress + ":" + self.port + "/" + self.databaseName + self.engine_url = new_engine_url