rre4445 / database.py
Mina
Nitro Max: Performance 95%, lxml, ujson, connection pooling
bbb37de
import aiosqlite
import logging
import os
# Smart DB Path: Use /tmp on Hugging Face for write access
is_hf = os.environ.get("SPACE_ID") is not None or os.environ.get("HF_SPACE") is not None
DB_NAME = "/tmp/netflix_clone.db" if is_hf else "netflix_clone.db"
async def init_db():
async with aiosqlite.connect(DB_NAME) as db:
# Movies Table
await db.execute("""
CREATE TABLE IF NOT EXISTS movies (
id TEXT PRIMARY KEY,
title TEXT,
poster TEXT,
year TEXT,
rating TEXT,
description TEXT,
category TEXT
)
""")
# Series Table
await db.execute("""
CREATE TABLE IF NOT EXISTS series (
id TEXT PRIMARY KEY,
title TEXT,
poster TEXT,
year TEXT,
rating TEXT,
description TEXT,
category TEXT
)
""")
# Episodes Table
await db.execute("""
CREATE TABLE IF NOT EXISTS episodes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
series_id TEXT,
episode_number INTEGER,
title TEXT,
watch_link TEXT,
FOREIGN KEY(series_id) REFERENCES series(id)
)
""")
await db.commit()
async def get_db_connection():
db = await aiosqlite.connect(DB_NAME)
db.row_factory = aiosqlite.Row
return db