From 9a4ed06d79f231b552106a1c880d30f8ef410a16 Mon Sep 17 00:00:00 2001 From: VD15 Date: Sat, 17 May 2025 18:58:12 +0100 Subject: [PATCH] cleanup db_utils.py --- bot/bot_app.py | 19 ++++++------------- bot/db_utils.py | 13 ++++++++++--- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/bot/bot_app.py b/bot/bot_app.py index 2159260..264c031 100644 --- a/bot/bot_app.py +++ b/bot/bot_app.py @@ -1,25 +1,15 @@ +import time import misskey -import os -import asyncio from parsing import parse_notification from db_utils import get_or_create_user, add_pull, get_config, set_config from client import client_connection # Initialize the Misskey client - -# Function to create a note when a user pulls a character in the gacha game - - -# Set the access token and instance URL (replace with your own values) - -# Initialize the Misskey client - client = client_connection() -import time - # Define your whitelist -whitelisted_instances = [] +# TODO: move to config +whitelisted_instances: list[str] = [] def stream_notifications(): print("Starting filtered notification stream...") @@ -28,6 +18,9 @@ def stream_notifications(): while True: try: + # May be able to mark notifications as read using misskey.py and + # filter them out here. This function also takes a since_id we + # could use as well notifications = client.i_notifications() if notifications: diff --git a/bot/db_utils.py b/bot/db_utils.py index 1da2ab7..c319488 100644 --- a/bot/db_utils.py +++ b/bot/db_utils.py @@ -1,22 +1,26 @@ import sqlite3 import random +# TODO: grab this from a config file instead DB_PATH = "./gacha_game.db" # Adjust if needed def get_db_connection(): + '''Creates a connection to the database''' conn = sqlite3.connect(DB_PATH) conn.row_factory = sqlite3.Row return conn def get_or_create_user(username): + '''Retrieves an ID for a given user, if the user does not exist, it will be + created.''' conn = get_db_connection() conn.row_factory = sqlite3.Row cur = conn.cursor() - cur.execute('SELECT * FROM users WHERE username = ?', (username,)) + cur.execute('SELECT id FROM users WHERE username = ?', (username,)) user = cur.fetchone() if user: conn.close() - return user['id'] + return user # New user starts with has_rolled = False cur.execute( @@ -29,6 +33,7 @@ def get_or_create_user(username): return user_id def add_pull(user_id, character_id): + '''Creates a pull in the database''' conn = get_db_connection() cur = conn.cursor() cur.execute('INSERT INTO pulls (user_id, character_id) VALUES (?, ?)', (user_id, character_id)) @@ -36,6 +41,7 @@ def add_pull(user_id, character_id): conn.close() def get_config(key): + '''Reads the value for a specified config key from the db''' conn = get_db_connection() cur = conn.cursor() cur.execute("SELECT value FROM config WHERE key = ?", (key,)) @@ -44,8 +50,9 @@ def get_config(key): return row[0] if row else None def set_config(key, value): + '''Writes the value for a specified config key to the db''' conn = get_db_connection() cur = conn.cursor() cur.execute("INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)", (key, value)) conn.commit() - conn.close() \ No newline at end of file + conn.close()