EchoTruth / modules /record.py
lightmate's picture
Upload 2 files
455555b verified
raw
history blame
1.86 kB
from dotenv import load_dotenv
import pymysql
import os
# Load environment variables
load_dotenv()
class DatabaseComponent:
def __init__(self):
# Establish the connection
self.connection = pymysql.connect(
host=os.getenv("DB_HOST"),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
port=int(os.getenv("DB_PORT")),
database=os.getenv("DB_NAME"),
ssl={'ca': None} # Disable SSL for Windows
)
def save_news_verification(self, title, score, citation):
"""
Saves a news verification result to the database.
"""
with self.connection.cursor() as cursor:
sql = """
INSERT INTO news_verifications (article_title, truthfulness_score, citation)
VALUES (%s, %s, %s)
"""
cursor.execute(sql, (title, score, citation))
self.connection.commit()
def get_total_news_count(self):
"""
Fetches the total number of news articles checked.
"""
with self.connection.cursor() as cursor:
sql = "SELECT COUNT(*) FROM news_verifications"
cursor.execute(sql)
result = cursor.fetchone()
return result[0] if result else 0
def get_last_10_news(self):
"""
Fetches the last 10 saved news verification entries.
"""
with self.connection.cursor() as cursor:
sql = """
SELECT article_title, truthfulness_score, citation, created_at
FROM news_verifications
ORDER BY created_at DESC
LIMIT 10
"""
cursor.execute(sql)
result = cursor.fetchall()
return [{"title": row[0], "score": row[1], "citation": row[2], "timestamp": row[3]} for row in result]