implemented quick and easy way for storing credentials in json files. Most of the stuff in here is template ideas, season them to taste for yourself
added .idea to .gitignore
This commit is contained in:
parent
9f449a916c
commit
c2113116cd
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,4 @@
|
||||
|
||||
tts/
|
||||
__pycache__/
|
||||
credentials/
|
||||
.idea/
|
||||
|
||||
6
credential_templates/credential_template_discord.json
Normal file
6
credential_templates/credential_template_discord.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"username": "discord",
|
||||
"helix": "secret discord",
|
||||
"oauth": "token discord",
|
||||
"v5_client": "I have no idea here"
|
||||
}
|
||||
6
credential_templates/credential_template_twitch.json
Normal file
6
credential_templates/credential_template_twitch.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"username": "something",
|
||||
"helix": "secret",
|
||||
"oauth": "token",
|
||||
"v5_client": "I have no idea here"
|
||||
}
|
||||
146
credentials.py
146
credentials.py
@ -1,48 +1,6 @@
|
||||
import json
|
||||
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
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class Credential(Enum):
|
||||
@ -50,26 +8,32 @@ class Credential(Enum):
|
||||
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 = ""
|
||||
# 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, username, helix, oauth, v5_client):
|
||||
# super().__init__()
|
||||
self.username = username
|
||||
self.helix = helix
|
||||
self.oauth = oauth
|
||||
self.v5_client = v5_client
|
||||
|
||||
|
||||
class Discord_Credential():
|
||||
#Discord Credentials explanations here.
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
username = ""
|
||||
# Discord Credentials explanations here.
|
||||
def __init__(self, username, helix, oauth, v5_client):
|
||||
# super().__init__()
|
||||
# all of this is completely made up, i just wanted to make sure your file name switch worked right
|
||||
self.username = username
|
||||
self.helix = helix
|
||||
self.oauth = oauth
|
||||
self.v5_client = v5_client
|
||||
|
||||
class DB_Credential():
|
||||
#engine = "mysql+mysqlconnector://root:password@localhost:3306/DatabaseName"
|
||||
# engine = "mysql+mysqlconnector://root:password@localhost:3306/DatabaseName"
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.username = ""
|
||||
@ -82,3 +46,67 @@ class DB_Credential():
|
||||
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
|
||||
|
||||
|
||||
class Credentials_Module():
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.Twitch_Credentials_List: list
|
||||
self.Discord_Credentials_List: list
|
||||
self.DB_Credentials_List: list
|
||||
|
||||
def load_credentials(self):
|
||||
fileList = self.list_credential_files()
|
||||
for file in fileList:
|
||||
if file.lower().find("twitch") != -1:
|
||||
credential_loading_function = self.credentialLoadingFunctions.get(Credential.Twitch_Credential)
|
||||
output = credential_loading_function(self, file)
|
||||
if file.lower().find("discord") != -1:
|
||||
credential_loading_function = self.credentialLoadingFunctions.get(Credential.Discord_Credential)
|
||||
output = credential_loading_function(self, file)
|
||||
if file.lower().find("db") != -1:
|
||||
credential_loading_function = self.credentialLoadingFunctions.get(Credential.DB_Credential)
|
||||
output = credential_loading_function(self, file)
|
||||
|
||||
def list_credential_files(self):
|
||||
credentialPath = self.get_credentials_dir()
|
||||
fileList: list = []
|
||||
for dirName, subdirList, fileList in os.walk(credentialPath):
|
||||
break
|
||||
return fileList
|
||||
|
||||
# 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):
|
||||
file_path = os.path.join(self.get_credentials_dir(), fileName)
|
||||
f = open(file_path)
|
||||
raw_json = json.loads(f.read())
|
||||
tobj = Twitch_Credential(**raw_json)
|
||||
return tobj
|
||||
|
||||
def load_Discord_Credential(self, fileName: str):
|
||||
file_path = os.path.join(self.get_credentials_dir(), fileName)
|
||||
f = open(file_path)
|
||||
raw_json = json.loads(f.read())
|
||||
tobj = Discord_Credential(**raw_json)
|
||||
return tobj
|
||||
|
||||
def load_DB_Credential(self, fileName: str):
|
||||
return None
|
||||
|
||||
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
|
||||
|
||||
}
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
creds = Credentials_Module()
|
||||
creds.load_credentials()
|
||||
|
||||
@ -4,7 +4,7 @@ import twitch
|
||||
|
||||
|
||||
testValidUrls = ['https://shady.ru', 'http://stolencards.zn', 'https://i.imgur.com/FL6slHd.jpg']
|
||||
testInvalidUrls = ['this is just a sentence. With a period', 'gotta have some other stuff', 'bad punctuation.does not produces false positives']
|
||||
testInvalidUrls = ['this is just a sentence. With a period', 'gotta have some other stuff', 'bad punctuation. does produces false positives']
|
||||
|
||||
|
||||
class TwitchBotTest(unittest.TestCase):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user