bug fix/install scripts

This commit is contained in:
2026-06-17 13:38:08 -05:00
parent da6767b149
commit c84acc4564
7 changed files with 522 additions and 17 deletions

View File

@@ -44,24 +44,24 @@ class Database:
# Characters table
self.cursor.execute('''
CREATE TABLE IF NOT EXISTS characters (
CREATE TABLE IF NOT EXISTS `characters` (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id BIGINT NOT NULL,
name VARCHAR(255) NOT NULL,
trigger VARCHAR(100) NOT NULL,
`trigger` VARCHAR(100) NOT NULL,
avatar_url TEXT,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
last_used TIMESTAMP NULL,
FOREIGN KEY (user_id) REFERENCES users(user_id),
UNIQUE KEY unique_user_trigger (user_id, trigger)
UNIQUE KEY unique_user_trigger (user_id, `trigger`)
)
''')
# Index for fast trigger lookups
self.cursor.execute('''
CREATE INDEX IF NOT EXISTS idx_user_trigger
ON characters(user_id, trigger)
ON `characters`(user_id, `trigger`)
''')
self.connection.commit()
@@ -80,7 +80,7 @@ class Database:
try:
self.cursor.execute(
'SELECT * FROM characters WHERE user_id = %s AND trigger = %s',
'SELECT * FROM `characters` WHERE user_id = %s AND `trigger` = %s',
(user_id, trigger)
)
result = self.cursor.fetchone()
@@ -97,7 +97,7 @@ class Database:
async def get_character_by_id(self, char_id):
"""Get character by ID"""
try:
self.cursor.execute('SELECT * FROM characters WHERE id = %s', (char_id,))
self.cursor.execute('SELECT * FROM `characters` WHERE id = %s', (char_id,))
return self.cursor.fetchone()
except Error as e:
logger.error(f'Get character by ID error: {e}')
@@ -114,8 +114,8 @@ class Database:
# Insert character
self.cursor.execute(
'''INSERT INTO characters
(user_id, name, trigger, avatar_url, description)
'''INSERT INTO `characters`
(user_id, name, `trigger`, avatar_url, description)
VALUES (%s, %s, %s, %s, %s)''',
(user_id, name, trigger, avatar_url, description)
)
@@ -135,7 +135,7 @@ class Database:
"""Get all characters for a user"""
try:
self.cursor.execute(
'SELECT * FROM characters WHERE user_id = %s ORDER BY created_at DESC',
'SELECT * FROM `characters` WHERE user_id = %s ORDER BY created_at DESC',
(user_id,)
)
return self.cursor.fetchall()
@@ -153,14 +153,14 @@ class Database:
return False
# Get old trigger for cache clearing
self.cursor.execute('SELECT user_id, trigger FROM characters WHERE id = %s', (char_id,))
self.cursor.execute('SELECT user_id, `trigger` FROM `characters` WHERE id = %s', (char_id,))
old_char = self.cursor.fetchone()
set_clause = ', '.join([f'{k} = %s' for k in updates.keys()])
set_clause = ', '.join([f'`{k}` = %s' if k == 'trigger' else f'{k} = %s' for k in updates.keys()])
values = list(updates.values()) + [char_id]
self.cursor.execute(
f'UPDATE characters SET {set_clause} WHERE id = %s',
f'UPDATE `characters` SET {set_clause} WHERE id = %s',
values
)
self.connection.commit()
@@ -186,10 +186,10 @@ class Database:
"""Delete a character"""
try:
# Get character info for cache clearing
self.cursor.execute('SELECT user_id, trigger FROM characters WHERE id = %s', (char_id,))
self.cursor.execute('SELECT user_id, `trigger` FROM `characters` WHERE id = %s', (char_id,))
char = self.cursor.fetchone()
self.cursor.execute('DELETE FROM characters WHERE id = %s', (char_id,))
self.cursor.execute('DELETE FROM `characters` WHERE id = %s', (char_id,))
self.connection.commit()
# Clear cache
@@ -207,7 +207,7 @@ class Database:
"""Update last_used timestamp for a character"""
try:
self.cursor.execute(
'UPDATE characters SET last_used = NOW() WHERE id = %s',
'UPDATE `characters` SET last_used = NOW() WHERE id = %s',
(char_id,)
)
self.connection.commit()
@@ -220,7 +220,7 @@ class Database:
"""Check if trigger is available for a user"""
try:
self.cursor.execute(
'SELECT id FROM characters WHERE user_id = %s AND trigger = %s',
'SELECT id FROM `characters` WHERE user_id = %s AND `trigger` = %s',
(user_id, trigger)
)
return self.cursor.fetchone() is None