diff --git a/src/Ai/interence.py b/src/Ai/interence.py index d68e9b6..c7c9bed 100644 --- a/src/Ai/interence.py +++ b/src/Ai/interence.py @@ -34,5 +34,6 @@ class VeraMindInference: return { "result": "FAKE" if is_fake else "REAL", - "confidence": float(confidence) + "confidence": float(confidence), + "is_fake": is_fake } \ No newline at end of file diff --git a/src/controller/mainFrameController.py b/src/controller/mainFrameController.py index 762fa99..2f778dd 100644 --- a/src/controller/mainFrameController.py +++ b/src/controller/mainFrameController.py @@ -1,14 +1,14 @@ from views.mainScreen import MainFrame from models.data import TextData from Ai.interence import VeraMindInference - - +from utils.database.database import FakeNewsChecker +from urllib.parse import urlparse class MainFrameController: def __init__(self,frame:MainFrame) -> None: self.frame = frame self.model_inference = VeraMindInference('VeraMind-Mini') - + self.db = FakeNewsChecker() def get_textdata(self) -> TextData: text_data = TextData() @@ -21,7 +21,9 @@ class MainFrameController: def press_check_button(self): text_data = self.get_textdata() print(f"text:{text_data.text}") - self.prediction(text_data) + text_data = self.prediction(text_data) + + self.addDB(textData=text_data) self.frame.output_textbox.configure(state="normal") self.frame.output_textbox.delete("0.0", "end") self.frame.output_textbox.insert("0.0",f"{text_data.get_output()}") @@ -31,6 +33,24 @@ class MainFrameController: result = self.model_inference.predict(text_data.text) text_data.confidence = result["confidence"] text_data.result = result["result"] + text_data.is_fake_news = result["is_fake"] print(f"Prediction: {text_data.result}") print(f"Confidence: {text_data.confidence}") - return text_data \ No newline at end of file + return text_data + + def addDB(self, textData: TextData): + if self.is_valid_url(textData.url): + parsed_url = urlparse(textData.url) + anbieter = parsed_url.netloc.split('.')[-2] + '.' + parsed_url.netloc.split('.')[-1] + print("Hauptdomain:", anbieter) + self.db.insert_data(url= textData.url, anbieter= anbieter,is_fake_news=textData.is_fake_news) + else: + self.db.insert_data(url= textData.url, anbieter= "None",is_fake_news=textData.is_fake_news) + + def is_valid_url(self, url): + try: + result = urlparse(url) + return all([result.scheme, result.netloc]) + except ValueError: + return False + \ No newline at end of file diff --git a/src/models/data.py b/src/models/data.py index 7f8f03b..2f15286 100644 --- a/src/models/data.py +++ b/src/models/data.py @@ -5,6 +5,7 @@ class TextData: self.url = url self.text = "" self.result = "" + self.is_fake_news = False self.confidence = None self._extractor = None