Download backend/database.py from Harshasnade/Deepfake_Detection_System_V1: direct link, hf CLI and curl.
- Browser
- Download file 3.19 kB
-
https://huggingface.co/spaces/Harshasnade/Deepfake_Detection_System_V1/resolve/main/backend/database.py
- Command line
-
hf download hf://spaces/Harshasnade/Deepfake_Detection_System_V1/backend/database.py
-
curl -L -o database.py https://huggingface.co/spaces/Harshasnade/Deepfake_Detection_System_V1/resolve/main/backend/database.py
3.19 kB
| import sqlite3 | |
| import datetime | |
| import os | |
| DB_NAME = os.path.join(os.path.dirname(__file__), 'database.db') | |
| def get_db_connection(): | |
| try: | |
| conn = sqlite3.connect(DB_NAME) | |
| conn.row_factory = sqlite3.Row | |
| return conn | |
| except sqlite3.Error as e: | |
| print(f"Database error: {e}") | |
| return None | |
| def init_db(): | |
| conn = get_db_connection() | |
| if conn: | |
| try: | |
| conn.execute(''' | |
| CREATE TABLE IF NOT EXISTS history ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| filename TEXT NOT NULL, | |
| prediction TEXT NOT NULL, | |
| confidence REAL NOT NULL, | |
| fake_probability REAL NOT NULL, | |
| real_probability REAL NOT NULL, | |
| timestamp DATETIME DEFAULT CURRENT_TIMESTAMP | |
| ) | |
| ''') | |
| conn.commit() | |
| print("✅ Database initialized successfully.") | |
| except sqlite3.Error as e: | |
| print(f"Error initializing database: {e}") | |
| # Migration: Add image_path if not exists | |
| try: | |
| conn.execute('ALTER TABLE history ADD COLUMN image_path TEXT') | |
| print("✅ Added image_path column.") | |
| except sqlite3.Error: | |
| pass # Column likely exists | |
| finally: | |
| conn.close() | |
| def add_scan(filename, prediction, confidence, fake_prob, real_prob, image_path=""): | |
| conn = get_db_connection() | |
| if conn: | |
| try: | |
| conn.execute(''' | |
| INSERT INTO history (filename, prediction, confidence, fake_probability, real_probability, image_path) | |
| VALUES (?, ?, ?, ?, ?, ?) | |
| ''', (filename, prediction, confidence, fake_prob, real_prob, image_path)) | |
| conn.commit() | |
| return True | |
| except sqlite3.Error as e: | |
| print(f"Error adding scan: {e}") | |
| return False | |
| finally: | |
| conn.close() | |
| return False | |
| def get_history(): | |
| conn = get_db_connection() | |
| if conn: | |
| try: | |
| cursor = conn.execute('SELECT * FROM history ORDER BY timestamp DESC') | |
| history = [dict(row) for row in cursor.fetchall()] | |
| return history | |
| except sqlite3.Error as e: | |
| print(f"Error retrieving history: {e}") | |
| return [] | |
| finally: | |
| conn.close() | |
| return [] | |
| def clear_history(): | |
| conn = get_db_connection() | |
| if conn: | |
| try: | |
| conn.execute('DELETE FROM history') | |
| conn.commit() | |
| return True | |
| except sqlite3.Error as e: | |
| print(f"Error clearing history: {e}") | |
| return False | |
| finally: | |
| conn.close() | |
| return False | |
| def delete_scan(scan_id): | |
| conn = get_db_connection() | |
| if conn: | |
| try: | |
| conn.execute('DELETE FROM history WHERE id = ?', (scan_id,)) | |
| conn.commit() | |
| return True | |
| except sqlite3.Error as e: | |
| print(f"Error deleting scan: {e}") | |
| return False | |
| finally: | |
| conn.close() | |
| return False | |
| # Initialize DB on module load | |
| init_db() | |