File size: 3,191 Bytes
0966609 |
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 101 102 103 104 105 106 107 |
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()
|