diff --git a/fake_news_checker.db b/fake_news_checker.db index 3badb6d..43543be 100644 Binary files a/fake_news_checker.db and b/fake_news_checker.db differ diff --git a/src/controller/mainFrameController.py b/src/controller/mainFrameController.py index 3c1e706..62d7fb6 100644 --- a/src/controller/mainFrameController.py +++ b/src/controller/mainFrameController.py @@ -21,7 +21,6 @@ class MainFrameController: self.frame = frame self.model_inference = VeraMindInference('VeraMind-Mini') self.db = FakeNewsChecker() - self._fetch_db_data() self.update_provider_list() def get_text_data(self) -> TextData: @@ -69,7 +68,7 @@ class MainFrameController: :param text_data: TextData object containing the analyzed information """ - self.db.insert_data(url=text_data.url, anbieter=text_data.get_provider(), is_fake_news=text_data.is_fake_news) + self.db.insert_data(url=text_data.url, anbieter=text_data.get_provider(),is_fake_news= text_data.is_fake_news) def _fetch_db_data(self): self.text_data_list = [] diff --git a/src/models/provider.py b/src/models/provider.py index ca860d9..3a82610 100644 --- a/src/models/provider.py +++ b/src/models/provider.py @@ -10,7 +10,8 @@ class Provider(): count_all = 0 count_fake = 0 for text_data in self.text_data_list: - print(text_data.is_fake_news) + #print(text_data.provider) + #print("FAKE" if text_data.is_fake_news else "REAL") count_all += 1 if text_data.is_fake_news: count_fake += 1 diff --git a/src/utils/database/database.py b/src/utils/database/database.py index 00ede72..79fb0ad 100644 --- a/src/utils/database/database.py +++ b/src/utils/database/database.py @@ -1,4 +1,4 @@ -import sqlite3 +import duckdb class FakeNewsChecker: def __init__(self, db_name='fake_news_checker.db'): @@ -6,49 +6,50 @@ class FakeNewsChecker: self.create_table() def create_connection(self): - return sqlite3.connect(self.db_name) + return duckdb.connect(self.db_name) def create_table(self): conn = self.create_connection() - cursor = conn.cursor() - cursor.execute(''' + conn.execute(''' CREATE TABLE IF NOT EXISTS url_info ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - url TEXT NOT NULL, - anbieter TEXT NOT NULL, + id INTEGER PRIMARY KEY, + url VARCHAR NOT NULL, + anbieter VARCHAR NOT NULL, is_fake_news BOOLEAN NOT NULL ) ''') - conn.commit() conn.close() + def get_next_id(self): + conn = self.create_connection() + result = conn.execute('SELECT COALESCE(MAX(id), 0) + 1 FROM url_info').fetchone() + conn.close() + return result[0] + def insert_data(self, url, anbieter, is_fake_news): conn = self.create_connection() - cursor = conn.cursor() - cursor.execute(''' - INSERT INTO url_info (url, anbieter, is_fake_news) - VALUES (?, ?, ?) - ''', (url, anbieter, is_fake_news)) - conn.commit() + next_id = self.get_next_id() + conn.execute(''' + INSERT INTO url_info (id, url, anbieter, is_fake_news) + VALUES (?, ?, ?, ?) + ''', [next_id, url, anbieter, bool(is_fake_news)]) conn.close() def fetch_data(self): conn = self.create_connection() - cursor = conn.cursor() - cursor.execute('SELECT * FROM url_info') - rows = cursor.fetchall() + result = conn.execute('SELECT * FROM url_info').fetchall() conn.close() - return rows + return result # Beispielnutzung der Klasse if __name__ == '__main__': checker = FakeNewsChecker() # Daten hinzufügen - checker.insert_data('https://example.com/news/123', 'Example News', 0) - checker.insert_data('https://fakenews.com/article/456', 'Fake News', 1) + checker.insert_data('https://example.com/news/123', 'Example News', False) + checker.insert_data('https://fakenews.com/article/456', 'Fake News', True) # Daten abrufen data = checker.fetch_data() for row in data: - print(f"ID: {row[0]}, URL: {row[1]}, Anbieter: {row[2]}, Fake News: {'Ja' if row[3] else 'Nein'}") + print(f"ID: {row[0]}, URL: {row[1]}, Anbieter: {row[2]}, Fake News: {'Ja' if row[3] else 'Nein'}") \ No newline at end of file