first commit for Application Actions™

main
Anorak_1 2023-08-17 23:28:04 +02:00
parent 4429753729
commit c74e259d61
1 changed files with 57 additions and 2 deletions

View File

@ -3,6 +3,8 @@ import os
import sqlite3 import sqlite3
import pickle import pickle
from action import Action
class MessageDB(): class MessageDB():
def add_application_msg(msg_id: str, author_id: str, guild_id: str) -> None: def add_application_msg(msg_id: str, author_id: str, guild_id: str) -> None:
@ -81,7 +83,8 @@ class GuildAppDB():
applications[application_name] = { applications[application_name] = {
"app_id": "", "app_id": "",
"resp_channel": "", "resp_channel": "",
"questions": [] "questions": [],
"actions": []
} }
application_blob2 = pickle.dumps(applications) application_blob2 = pickle.dumps(applications)
cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id)) cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id))
@ -240,3 +243,55 @@ class GuildAppDB():
return "error on remove question: question index not found" return "error on remove question: question index not found"
else: else:
return "error on remove question: application not found" return "error on remove question: application not found"
def add_action(guild_id: str, application_name: str, action: Action) -> 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():
action_index = int(len(applications[application_name]["actions"]))
applications[application_name]["actions"].append(action)
application_blob2 = pickle.dumps(applications)
cur.execute("UPDATE app_guildapp_db SET applications_blob = (?) WHERE guild_id= (?)", (application_blob2, guild_id))
con.commit()
return "success"
else:
return "error on add action: application not found"
def get_actions(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():
actions = applications[application_name]["actions"]
return actions
else:
return "error on get actions: application not found"
def remove_action(guild_id: str, application_name: str, action_index: int):
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():
actions = applications[application_name]["actions"]
if action_index <= len(actions):
actions.pop(action_index-1)
applications[application_name]["actions"] = actions
application_blob2 = pickle.dumps(applications)
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 action: action index not found"
else:
return "error on remove action: application not found"