1
0
Fork 0

Add auth_db.py

This commit is contained in:
Eric Lay 2025-05-04 20:02:56 -05:00
parent 19a2bb82a1
commit 6167be2ff1
1 changed files with 50 additions and 0 deletions

50
auth_db.py Normal file
View File

@ -0,0 +1,50 @@
import sqlite3
# Init DB and set CRUD functions
class AuthDB:
def __init__(self, db_path="auth_keys.db"):
self.db_path = db_path
self._init_db()
def _init_db(self):
with sqlite3.connect(self.db_path) as conn:
c = conn.cursor()
c.execute('''
CREATE TABLE IF NOT EXISTS verified_users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
irc_nick TEXT UNIQUE NOT NULL,
site_username TEXT NOT NULL,
irc_key TEXT NOT NULL,
group_id INTEGER NOT NULL DEFAULT 4,
joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
''')
conn.commit()
def verify_user(self, irc_nick, site_username, irc_key, group_id):
with sqlite3.connect(self.db_path) as conn:
c = conn.cursor()
c.execute('''
INSERT INTO verified_users (irc_nick, site_username, irc_key, group_id)
VALUES (?, ?, ?, ?)
ON CONFLICT(irc_nick) DO UPDATE SET
site_username = excluded.site_username,
irc_key = excluded.irc_key,
group_id = excluded.group_id,
joined_at = CURRENT_TIMESTAMP
''', (irc_nick, site_username, irc_key, group_id))
conn.commit()
def get_verified_user(self, irc_nick):
with sqlite3.connect(self.db_path) as conn:
c = conn.cursor()
c.execute('SELECT site_username, irc_key, group_id FROM verified_users WHERE irc_nick = ?', (irc_nick,))
return c.fetchone()
def remove_verified_user(self, irc_nick):
with sqlite3.connect(self.db_path) as conn:
c = conn.cursor()
c.execute('DELETE FROM verified_users WHERE irc_nick = ?', (irc_nick,))
conn.commit()
auth_db = AuthDB()