bartendr604's picture
sync: GitHub main → HF Space
87ba1a2 verified
import sqlite3
import os
DB_PATH = os.environ.get("DB_PATH", os.path.join(os.path.dirname(__file__), "shop.db"))
def get_db():
conn = sqlite3.connect(DB_PATH)
conn.row_factory = sqlite3.Row
return conn
def init_db():
conn = get_db()
c = conn.cursor()
c.execute("""
CREATE TABLE IF NOT EXISTS stickers (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
character TEXT NOT NULL,
tier TEXT NOT NULL,
price_cents INTEGER NOT NULL,
stock INTEGER, -- NULL = unlimited
sold INTEGER DEFAULT 0,
image_path TEXT NOT NULL,
description TEXT
)
""")
c.execute("""
CREATE TABLE IF NOT EXISTS purchases (
id INTEGER PRIMARY KEY AUTOINCREMENT,
discord_user_id TEXT NOT NULL,
sticker_id TEXT NOT NULL,
stripe_session_id TEXT UNIQUE,
status TEXT DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
""")
c.execute("""
CREATE TABLE IF NOT EXISTS inventory (
discord_user_id TEXT NOT NULL,
sticker_id TEXT NOT NULL,
acquired_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (discord_user_id, sticker_id)
)
""")
conn.commit()
conn.close()
print("Database initialized.")
def seed_stickers():
stickers = [
# Tien - Musical (Standard & Limited)
("tien-default", "Tien", "Tien", "standard", 99, None, "/Musical/Tien.jpeg", "The jade elephant himself."),
("tien-dance", "Tien Dancing", "Tien", "limited", 299, 100, "/Musical/Tien-dance.jpeg", "Tien full of joy!"),
("tien-harmonica", "Tien Harmonica","Tien","standard", 99, None, "/Musical/Tien-harmonica.jpeg","Playing his favourite tune."),
("tien-playing", "Tien Playing", "Tien", "standard", 99, None, "/Musical/Tien-playing.jpeg", "Focused and creative."),
("tien-sitting", "Tien Chilling","Tien", "standard", 99, None, "/Musical/Tien-sitting.jpeg", "Just vibing."),
("tien-surprised", "Tien Surprised","Tien","limited", 299, 100, "/Musical/Tien-surprised.jpeg","!!!!"),
("tien-walking", "Tien Walking", "Tien", "standard", 99, None, "/Musical/Tien-walking.jpeg", "On the move."),
("tien-nobg", "Tien (Clean)", "Tien", "collector", 499, 50, "/Musical/Tien-nobackground.jpeg","Transparent background."),
# Nishang - Delicate
("nishang-default", "Nishang", "Nishang","standard",99, None, "/Delicate/Nishang.jpeg", "Luminous and graceful."),
("nishang-original","Nishang Classic","Nishang","limited",299, 100, "/Delicate/Nishang-original.jpeg","The original render."),
# Xiaohan - Ancient
("xiaohan-default", "Xiaohan", "Xiaohan","standard",99, None, "/Ancient/Xiaohan.jpeg", "The ancient dragon guide."),
("xiaohan-cliff", "Xiaohan Cliff","Xiaohan","limited", 299, 100, "/Ancient/Xiaohan-cliff.jpeg", "Epic cliff scene."),
("xiaohan-clouds", "Xiaohan Clouds","Xiaohan","limited",299, 100, "/Ancient/Xiaohan-clouds.jpeg", "Among the clouds."),
("xiaohan-valley", "Xiaohan Valley","Xiaohan","collector",499,50, "/Ancient/Xiaohan-valley.jpeg", "The great valley."),
("xiaohan-nobg", "Xiaohan (Clean)","Xiaohan","collector",499,50, "/Ancient/Xiaohan-nobackground.jpeg","Transparent background."),
# Shi Yin
("shiyin-default", "Shi Yin", "Shi Yin","limited", 299, 100, "/Shi Yin/Shi Yin.jpeg", "Mysterious Shi Yin."),
# Eternal Path Logo - Ultra Rare
("eternal-logo", "Eternal Path Logo","Eternal Path Media","ultra_rare",1499,10,
"/brand/Eternal Path Brand.jpeg","Ultra rare — only 10 exist."),
]
conn = get_db()
c = conn.cursor()
base = os.path.join(os.path.dirname(os.path.dirname(__file__)), "stickers", "assets")
for s in stickers:
sid, name, char, tier, price, stock, rel_path, desc = s
full_path = os.path.join(base, rel_path.lstrip("/"))
c.execute("""
INSERT OR IGNORE INTO stickers
(id, name, character, tier, price_cents, stock, image_path, description)
VALUES (?,?,?,?,?,?,?,?)
""", (sid, name, char, tier, price, stock, full_path, desc))
conn.commit()
conn.close()
print("Stickers seeded.")
if __name__ == "__main__":
init_db()
seed_stickers()