Added database thing

This commit is contained in:
NikolajDanger
2020-08-12 21:08:35 +02:00
parent 1a459fffb0
commit 7afb7454f8
4 changed files with 38 additions and 7 deletions

View File

@ -1,8 +1,8 @@
import discord, os, finnhub import discord, os, finnhub, pymongo
from discord.ext import commands from discord.ext import commands
from pymongo import MongoClient
from funcs import logThis, makeFiles from funcs import logThis, makeFiles, transferUsers
commandPrefix = "!" commandPrefix = "!"
@ -14,12 +14,24 @@ class Credentials():
self.token = data[0][10:].replace(" ","") self.token = data[0][10:].replace(" ","")
self.finnhubKey = data[1][16:].replace(" ","") self.finnhubKey = data[1][16:].replace(" ","")
self.wordnikKey = data[2][16:].replace(" ","") self.wordnikKey = data[2][16:].replace(" ","")
self.mongoDBUser = data[3][13:].replace(" ","")
self.mongoDBPassword = data[4][17:].replace(" ","")
class Options():
def __init__(self):
with open("options.txt","r") as f:
data = f.read().splitlines()
self.prefix = data[0][7:].replace(" ","")
self.testing = bool(data[1][8:].replace(" ",""))
class Gwendolyn(commands.Bot): class Gwendolyn(commands.Bot):
def __init__(self): def __init__(self):
self.options = Options()
self.credentials = Credentials() self.credentials = Credentials()
self.finnhubClient = finnhub.Client(api_key = self.credentials.finnhubKey) self.finnhubClient = finnhub.Client(api_key = self.credentials.finnhubKey)
self.MongoClient = MongoClient(f"mongodb+srv://{self.credentials.mongoDBUser}:{self.credentials.mongoDBPassword}@gwendolyn.qkwfy.mongodb.net/Gwendolyn-Test?retryWrites=true&w=majority")
self.database = self.MongoClient["Gwendolyn-Test"]
super().__init__(command_prefix=commandPrefix, case_insensitive=True) super().__init__(command_prefix=commandPrefix, case_insensitive=True)
# Creates the required files # Creates the required files
@ -28,6 +40,9 @@ makeFiles()
# Creates the Bot # Creates the Bot
client = Gwendolyn() client = Gwendolyn()
# Creates database collections
transferUsers(client.database)
# Logs in # Logs in
@client.event @client.event
async def on_ready(): async def on_ready():

View File

@ -1,8 +1,8 @@
"""A collection of all Gwendolyn functions.""" """A collection of all Gwendolyn functions."""
__all__ = ["helloFunc", "cap", "imageFunc", "logThis", "findWikiPage", "makeFiles", "emojiToCommand", "fiarReactionTest", "deleteGame", "stopServer", "checkBalance", "giveMoney", "addMoney", "triviaCountPoints", "triviaStart", "triviaAnswer", "spellFunc", "monsterFunc", "nameGen", "tavernGen", "movieFunc", "roll_dice", "parseChar", "parseRoll", "critRoll", "parseDestiny", "addToDict", "getName", "getID", "replaceMultiple", "monopolyReactionTest","parseInvest", "fiar", "runMonopoly", "runHex", "runHangman","hangmanReactionTest", "parseBlackjack"] __all__ = ["helloFunc", "cap", "imageFunc", "logThis", "findWikiPage", "makeFiles", "emojiToCommand", "fiarReactionTest", "deleteGame", "stopServer", "checkBalance", "giveMoney", "addMoney", "triviaCountPoints", "triviaStart", "triviaAnswer", "spellFunc", "monsterFunc", "nameGen", "tavernGen", "movieFunc", "roll_dice", "parseChar", "parseRoll", "critRoll", "parseDestiny", "addToDict", "getName", "getID", "replaceMultiple", "monopolyReactionTest","parseInvest", "fiar", "runMonopoly", "runHex", "runHangman","hangmanReactionTest", "parseBlackjack","transferUsers"]
from .miscFuncs import helloFunc, cap, imageFunc, logThis, findWikiPage, makeFiles, replaceMultiple, emojiToCommand, fiarReactionTest, deleteGame, stopServer, addToDict, getName, getID, monopolyReactionTest, hangmanReactionTest from .miscFuncs import helloFunc, cap, imageFunc, logThis, findWikiPage, makeFiles, replaceMultiple, emojiToCommand, fiarReactionTest, deleteGame, stopServer, addToDict, getName, getID, monopolyReactionTest, hangmanReactionTest, transferUsers
from .games import checkBalance, giveMoney, addMoney, triviaCountPoints, triviaStart, triviaAnswer, fiar, runMonopoly, runHex, runHangman, parseBlackjack, parseInvest from .games import checkBalance, giveMoney, addMoney, triviaCountPoints, triviaStart, triviaAnswer, fiar, runMonopoly, runHex, runHangman, parseBlackjack, parseInvest

View File

@ -8,6 +8,7 @@ import logging # Used for... you know... logging
import wikia # Used by findWikiPage import wikia # Used by findWikiPage
import os # Used by makeFiles import os # Used by makeFiles
import git # Used by stopServer() import git # Used by stopServer()
import pymongo # Used by transferUsers
logging.basicConfig(filename="gwendolyn.log", level=logging.INFO) logging.basicConfig(filename="gwendolyn.log", level=logging.INFO)
@ -342,3 +343,18 @@ def getID(userName):
return userID return userID
except: except:
logThis("Error getting ID") logThis("Error getting ID")
def transferUsers(database):
collist = database.list_collection_names()
if "users" not in collist and os.path.exists("resources/users.json"):
logThis("Transfering users")
with open("resources/users.json", "r") as f:
data = json.load(f)
userList = []
for key, value in list(data.items()):
user = {"_id":int(key[1:]),"user name":value["user name"],"money":value["money"]}
userList.append(user)
database["users"].insert_many(userList)

View File

@ -4,7 +4,6 @@
"resources/games/hexGames.json": {}, "resources/games/hexGames.json": {},
"resources/games/monopolyGames.json": {}, "resources/games/monopolyGames.json": {},
"resources/games/hangmanGames.json": {}, "resources/games/hangmanGames.json": {},
"resources/users.json" : {},
"resources/games/investments.json" : {}, "resources/games/investments.json" : {},
"resources/games/games.json" : { "resources/games/games.json" : {
"trivia questions":{}, "trivia questions":{},
@ -70,7 +69,8 @@
"resources/starWars/destinyPoints.txt": "", "resources/starWars/destinyPoints.txt": "",
"resources/movies.txt": "The Room", "resources/movies.txt": "The Room",
"resources/names.txt": "Gandalf", "resources/names.txt": "Gandalf",
"credentials.txt" : "Bot token: TOKEN\nFinnhub API key: KEY\nWordnik API Key: KEY" "credentials.txt" : "Bot token: TOKEN\nFinnhub API key: KEY\nWordnik API Key: KEY\nMongoDB user: USERNAME\nMongoDB password: PASSWORD",
"options.txt" : "Prefix: !\nTesting: True"
}, },
"folder" : [ "folder" : [
"resources/games/blackjackTables", "resources/games/blackjackTables",