cleanup db_utils.py

pull/8/head
VD15 3 days ago
parent da0d1742ff
commit 9a4ed06d79
  1. 19
      bot/bot_app.py
  2. 11
      bot/db_utils.py

@ -1,25 +1,15 @@
import time
import misskey import misskey
import os
import asyncio
from parsing import parse_notification from parsing import parse_notification
from db_utils import get_or_create_user, add_pull, get_config, set_config from db_utils import get_or_create_user, add_pull, get_config, set_config
from client import client_connection from client import client_connection
# Initialize the Misskey client # 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() client = client_connection()
import time
# Define your whitelist # Define your whitelist
whitelisted_instances = [] # TODO: move to config
whitelisted_instances: list[str] = []
def stream_notifications(): def stream_notifications():
print("Starting filtered notification stream...") print("Starting filtered notification stream...")
@ -28,6 +18,9 @@ def stream_notifications():
while True: while True:
try: 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() notifications = client.i_notifications()
if notifications: if notifications:

@ -1,22 +1,26 @@
import sqlite3 import sqlite3
import random import random
# TODO: grab this from a config file instead
DB_PATH = "./gacha_game.db" # Adjust if needed DB_PATH = "./gacha_game.db" # Adjust if needed
def get_db_connection(): def get_db_connection():
'''Creates a connection to the database'''
conn = sqlite3.connect(DB_PATH) conn = sqlite3.connect(DB_PATH)
conn.row_factory = sqlite3.Row conn.row_factory = sqlite3.Row
return conn return conn
def get_or_create_user(username): 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 = get_db_connection()
conn.row_factory = sqlite3.Row conn.row_factory = sqlite3.Row
cur = conn.cursor() cur = conn.cursor()
cur.execute('SELECT * FROM users WHERE username = ?', (username,)) cur.execute('SELECT id FROM users WHERE username = ?', (username,))
user = cur.fetchone() user = cur.fetchone()
if user: if user:
conn.close() conn.close()
return user['id'] return user
# New user starts with has_rolled = False # New user starts with has_rolled = False
cur.execute( cur.execute(
@ -29,6 +33,7 @@ def get_or_create_user(username):
return user_id return user_id
def add_pull(user_id, character_id): def add_pull(user_id, character_id):
'''Creates a pull in the database'''
conn = get_db_connection() conn = get_db_connection()
cur = conn.cursor() cur = conn.cursor()
cur.execute('INSERT INTO pulls (user_id, character_id) VALUES (?, ?)', (user_id, character_id)) 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() conn.close()
def get_config(key): def get_config(key):
'''Reads the value for a specified config key from the db'''
conn = get_db_connection() conn = get_db_connection()
cur = conn.cursor() cur = conn.cursor()
cur.execute("SELECT value FROM config WHERE key = ?", (key,)) cur.execute("SELECT value FROM config WHERE key = ?", (key,))
@ -44,6 +50,7 @@ def get_config(key):
return row[0] if row else None return row[0] if row else None
def set_config(key, value): def set_config(key, value):
'''Writes the value for a specified config key to the db'''
conn = get_db_connection() conn = get_db_connection()
cur = conn.cursor() cur = conn.cursor()
cur.execute("INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)", (key, value)) cur.execute("INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)", (key, value))

Loading…
Cancel
Save