database.py (964B)
1 #!/usr/bin/python3 2 3 import pathlib 4 import sqlite3 5 from contextvars import ContextVar 6 7 # holds the database context so it can be used across modules without circular imports 8 database_ctx: ContextVar[sqlite3.Connection] = ContextVar("database") 9 10 11 def setup_database(database_path: pathlib.Path): 12 database = sqlite3.connect(database_path) 13 14 database.execute( 15 "CREATE TABLE IF NOT EXISTS gofile_tokens " 16 "(job_id TEXT PRIMARY KEY, token TEXT, folder_id TEXT, url TEXT)" 17 ) 18 database.execute( 19 "CREATE TABLE IF NOT EXISTS gofile_files " 20 "(job_id TEXT NOT NULL, filepath TEXT, FOREIGN KEY(job_id) REFERENCES gofile_tokens(job_id))" 21 ) 22 database.execute( 23 "CREATE TABLE IF NOT EXISTS job_config (job_id TEXT PRIMARY KEY, config TEXT)" 24 ) 25 database.execute( 26 "CREATE TABLE IF NOT EXISTS job_status (job_id TEXT PRIMARY KEY, completed BOOL)" 27 ) 28 29 database.commit() 30 31 database_ctx.set(database)