Fix **a lot** of bugs

main
Anorak_1 2023-08-10 22:20:50 +02:00
parent 44c14e27ee
commit f73a6612e2
1 changed files with 57 additions and 31 deletions

View File

@ -30,7 +30,7 @@ class GuildAppDB():
applications = {}
application_blob = pickle.dumps(applications)
data = guild_id, guild_name, application_blob
con = sqlite3.connect("application.db")
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute("INSERT INTO app_guildapp_db VALUES (?, ?, ?)", data)
con.commit()
@ -38,22 +38,32 @@ class GuildAppDB():
def remove_guild(guild_id: str) -> None:
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute(f"DELETE FROM app_guildapp_db WHERE guild_id={guild_id}")
cur.execute("DELETE FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
con.commit()
def get_all_guilds() -> list:
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute("SELECT guild_id FROM app_guildapp_db")
guilds = cur.fetchall()
guilds = [guild[0] for guild in guilds]
return guilds
def add_application_entry(guild_id: str, application_name: str) -> str:
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute(f"SELECT application_blob FROM app_guildapp_db WHERE guild_id={guild_id}")
cur.execute("SELECT applications_blob FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
application_blob = cur.fetchone()
applications = pickle.loads(application_blob)
applications = pickle.loads(application_blob[0])
print(applications)
if application_name not in applications.keys():
applications[f"application_name"] = {
applications[application_name] = {
"app_id": "",
"resp_channel": ""
"resp_channel": "",
"questions": []
}
application_blob2 = pickle.dumps(applications)
cur.execute(f"UPDATE app_guildapp_db SET application_blob = ? WHERE guild_id={guild_id}", application_blob2)
cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id))
con.commit()
return "success"
else:
@ -62,28 +72,37 @@ class GuildAppDB():
def remove_application_entry(guild_id: str, application_name: str) -> str:
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute(f"SELECT application_blob FROM app_guildapp_db WHERE guild_id={guild_id}")
cur.execute("SELECT applications_blob FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
application_blob = cur.fetchone()
applications = pickle.loads(application_blob)
applications = pickle.loads(application_blob[0])
if application_name in applications.keys():
applications.pop(application_name)
application_blob2 = pickle.dumps(applications)
cur.execute(f"UPDATE app_guildapp_db SET application_blob = ? WHERE guild_id={guild_id}", application_blob2)
cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id))
con.commit()
return "success"
else:
return "error on remove application entry: application not found"
def get_application_entry(guild_id: str, application_name: str):
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute("SELECT applications_blob FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
application_blob = cur.fetchone()
applications = pickle.loads(application_blob[0])
if application_name in applications.keys():
return applications[application_name]
def set_response_channel(guild_id: str, application_name: str, channel_id: str) -> str:
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute(f"SELECT application_blob FROM app_guildapp_db WHERE guild_id={guild_id}")
cur.execute("SELECT applications_blob FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
application_blob = cur.fetchone()
applications = pickle.loads(application_blob)
applications = pickle.loads(application_blob[0])
if application_name in applications.keys():
applications[application_name]["resp_channel"] = channel_id
application_blob2 = pickle.dumps(applications)
cur.execute(f"UPDATE app_guildapp_db SET application_blob = ? WHERE guild_id={guild_id}", application_blob2)
cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id))
con.commit()
return "success"
else:
@ -92,14 +111,14 @@ class GuildAppDB():
def add_question(guild_id: str, application_name: str, question: str) -> str:
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute(f"SELECT application_blob FROM app_guildapp_db WHERE guild_id={guild_id}")
cur.execute("SELECT applications_blob FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
application_blob = cur.fetchone()
applications = pickle.loads(application_blob)
applications = pickle.loads(application_blob[0])
if application_name in applications.keys():
question_index = int(len(applications[application_name]["questions"]))
applications[application_name]["questions"][question_index] = question
applications[application_name]["questions"].append(question)
application_blob2 = pickle.dumps(applications)
cur.execute(f"UPDATE app_guildapp_db SET application_blob = ? WHERE guild_id={guild_id}", application_blob2)
cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id))
con.commit()
return "success"
else:
@ -108,9 +127,9 @@ class GuildAppDB():
def get_questions(guild_id: str, application_name: str):
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute(f"SELECT application_blob FROM app_guildapp_db WHERE guild_id={guild_id}")
cur.execute("SELECT applications_blob FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
application_blob = cur.fetchone()
applications = pickle.loads(application_blob)
applications = pickle.loads(application_blob[0])
if application_name in applications.keys():
questions = applications[application_name]["questions"]
return questions, len(questions)
@ -120,16 +139,16 @@ class GuildAppDB():
def edit_question(guild_id: str, application_name: str, question_index: int, new_question: str):
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute(f"SELECT application_blob FROM app_guildapp_db WHERE guild_id={guild_id}")
cur.execute("SELECT applications_blob FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
application_blob = cur.fetchone()
applications = pickle.loads(application_blob)
applications = pickle.loads(application_blob[0])
if application_name in applications.keys():
if question_index in applications[application_name].keys():
questions = applications[application_name]["questions"]#[question_index] = new_question
questions = applications[application_name]["questions"]
if question_index <= len(questions):
questions[question_index-1] = new_question
applications[application_name]["questions"] = questions
application_blob2 = pickle.dumps(applications)
cur.execute(f"UPDATE app_guildapp_db SET application_blob = ? WHERE guild_id={guild_id}", application_blob2)
cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id))
con.commit()
return "success"
else:
@ -140,16 +159,23 @@ class GuildAppDB():
def move_question(guild_id: str, application_name: str, init_que_index: int, fin_que_index: int):
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute(f"SELECT application_blob FROM app_guildapp_db WHERE guild_id={guild_id}")
cur.execute("SELECT applications_blob FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
application_blob = cur.fetchone()
applications = pickle.loads(application_blob)
applications = pickle.loads(application_blob[0])
if application_name in applications.keys():
questions = applications[application_name]["questions"]
if init_que_index <= len(questions) and fin_que_index <= len(questions):
questions.insert(init_que_index-1, questions.pop(fin_que_index-1))
if init_que_index > fin_que_index:
questions.insert(fin_que_index-1, questions[init_que_index-1])
questions.pop(init_que_index)
elif init_que_index < fin_que_index:
questions.insert(fin_que_index, questions[init_que_index-1])
questions.pop(init_que_index-1)
else:
return "error on move question: init and fin index equal"
applications[application_name]["questions"] = questions
application_blob2 = pickle.dumps(applications)
cur.execute(f"UPDATE app_guildapp_db SET application_blob = ? WHERE guild_id={guild_id}", application_blob2)
cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id))
con.commit()
return "success"
else:
@ -160,16 +186,16 @@ class GuildAppDB():
def remove_question(guild_id: str, application_name: str, question_index: int):
con = sqlite3.connect("applications.db")
cur = con.cursor()
cur.execute(f"SELECT application_blob FROM app_guildapp_db WHERE guild_id={guild_id}")
cur.execute("SELECT applications_blob FROM app_guildapp_db WHERE guild_id=(?)", (guild_id, ))
application_blob = cur.fetchone()
applications = pickle.loads(application_blob)
applications = pickle.loads(application_blob[0])
if application_name in applications.keys():
questions = applications[application_name]["questions"]
if question_index <= len(questions):
questions.pop(question_index-1)
applications[application_name]["questions"] = questions
application_blob2 = pickle.dumps(applications)
cur.execute(f"UPDATE app_guildapp_db SET application_blob = ? WHERE guild_id={guild_id}", application_blob2)
cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id))
con.commit()
return "success"
else: