Spaces:
Runtime error
Runtime error
File size: 4,564 Bytes
9bb83f4 87ba1a2 9bb83f4 87ba1a2 9bb83f4 87ba1a2 9bb83f4 87ba1a2 9bb83f4 87ba1a2 9bb83f4 87ba1a2 9bb83f4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | 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()
|