from sys import argv
import sqlite3
import re
conn = sqlite3.connect("/home/sweebotirc/sbirc.db")
database = conn.cursor()
def getperms(mask: str):
    try:
        database.execute(f"SELECT * FROM users;")
        output = database.fetchall()
        for i in output:
            if re.match(i[0].replace("*", ".+"), mask):
                return i[1]
        return ''
    except:
        print(traceback.format_exc())
        return ''
if argv[2] == "full":
    if len(argv) == 5:
        if argv[3] == argv[2]:
            print(argv[1] + ": You wanna give yourself permissions!?")
        else:
            perms = getperms(argv[3])
            if argv[4] in perms:
                print("The specified user already has these permissions.")
            elif perms != "":
                database.execute("UPDATE users SET perms = '" + perms + "," + argv[4] + "' WHERE username = '" + argv[3] + "';")
                print(argv[1] + ": Successfully appended '" + argv[4] + "' to the permissions of " + argv[3])
            else:
                database.execute("INSERT INTO users (username, perms) VALUES ('" + argv[3] + "', '" + argv[4] + "');")
                print(argv[1] + ": Successfully created permissions of " + argv[3] + " and set it to '" + argv[4] + "'")
    else:
        print(argv[1] + ": This command takes 2 arguments, only got " + str(len(argv) - 3) + ".")
else:
    print(argv[1]+": Permission denied")
conn.commit()
conn.close()