You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.4 KiB
61 lines
1.4 KiB
import sqlite3
|
|
|
|
# Connect to SQLite database (or create it if it doesn't exist)
|
|
conn = sqlite3.connect('gacha_game.db')
|
|
cursor = conn.cursor()
|
|
|
|
# Create tables
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
username TEXT UNIQUE NOT NULL,
|
|
has_rolled BOOLEAN NOT NULL DEFAULT 0
|
|
)
|
|
''')
|
|
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS characters (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT NOT NULL,
|
|
rarity INTEGER NOT NULL,
|
|
weight REAL NOT NULL,
|
|
file_id TEXT NOT NULL
|
|
)
|
|
''')
|
|
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS pulls (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
user_id INTEGER,
|
|
character_id INTEGER,
|
|
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (user_id) REFERENCES users(id),
|
|
FOREIGN KEY (character_id) REFERENCES characters(id)
|
|
)
|
|
''')
|
|
|
|
cursor.execute("""
|
|
CREATE TABLE IF NOT EXISTS config (
|
|
key TEXT PRIMARY KEY,
|
|
value TEXT
|
|
)
|
|
""")
|
|
|
|
""" # Insert example characters into the database if they don't already exist
|
|
characters = [
|
|
('Murakami-san', 1, 0.35),
|
|
('Mastodon-kun', 2, 0.25),
|
|
('Pleroma-tan', 3, 0.2),
|
|
('Misskey-tan', 4, 0.15),
|
|
('Syuilo-mama', 5, 0.05)
|
|
]
|
|
|
|
|
|
cursor.executemany('''
|
|
INSERT OR IGNORE INTO characters (name, rarity, weight) VALUES (?, ?, ?)
|
|
''', characters)
|
|
"""
|
|
|
|
# Commit changes and close
|
|
conn.commit()
|
|
conn.close()
|
|
|