From 03c3ba2285357bf620bef0b2237a7116d02ba1f9 Mon Sep 17 00:00:00 2001 From: Akamaru Date: Wed, 30 Jul 2025 13:20:23 +0200 Subject: [PATCH] =?UTF-8?q?F=C3=BCge=20Unterst=C3=BCtzung=20f=C3=BCr=20deu?= =?UTF-8?q?tsche=20Synchronfassungen=20hinzu=20und=20aktualisiere=20die=20?= =?UTF-8?q?Datumspr=C3=A4ferenzen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serien_checker.py | 55 +++++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 19 deletions(-) diff --git a/serien_checker.py b/serien_checker.py index 6eeab6f..1f8063f 100644 --- a/serien_checker.py +++ b/serien_checker.py @@ -80,7 +80,7 @@ class NewSeriesDialog(QDialog): # Datumspräferenz self.date_pref = QComboBox() - self.date_pref.addItems(["Bevorzuge Erstausstrahlung", "Bevorzuge TV", "Bevorzuge Streaming"]) + self.date_pref.addItems(["Bevorzuge Erstausstrahlung", "Bevorzuge TV", "Bevorzuge Streaming", "Bevorzuge deutsche Synchro"]) settings_layout.addRow("Datum Präferenz:", self.date_pref) settings_group.setLayout(settings_layout) @@ -190,7 +190,7 @@ class SeriesEditDialog(QDialog): left_layout.addWidget(list_group) # Info Label - info_label = QLabel('v1.0 | © Akamaru | Source auf PonyGit') + info_label = QLabel('v1.1 | © Akamaru | Source auf PonyGit') info_label.setOpenExternalLinks(True) # Erlaubt das Öffnen des Links info_label.setTextFormat(Qt.RichText) # Aktiviert HTML-Formatierung left_layout.addWidget(info_label) @@ -221,7 +221,7 @@ class SeriesEditDialog(QDialog): # Datumspräferenz self.date_pref = QComboBox() - self.date_pref.addItems(["Bevorzuge Erstausstrahlung", "Bevorzuge TV", "Bevorzuge Streaming"]) + self.date_pref.addItems(["Bevorzuge Erstausstrahlung", "Bevorzuge TV", "Bevorzuge Streaming", "Bevorzuge deutsche Synchro"]) settings_layout.addRow("Datum Präferenz:", self.date_pref) # Speichern Button für Einstellungen @@ -489,6 +489,7 @@ class SerienChecker(QMainWindow): try: tv_date = None streaming_date = None + synchro_date = None # Suche nach allen deutschen Premieren for ea_angabe in episode.find_all('ea-angabe'): @@ -499,21 +500,24 @@ class SerienChecker(QMainWindow): titel = titel_elem.text.strip() logging.debug(f"Gefundene Premiere: {titel}") - if "Deutsche" in titel: - datum_elem = ea_angabe.find('ea-angabe-datum') - if datum_elem: - date_str = datum_elem.text.strip() - if '. ' in date_str: - date_str = date_str.split('. ', 1)[1] - - parsed_date = self.parse_date(date_str) - if parsed_date: - if "TV-Premiere" in titel: - tv_date = (parsed_date, date_str) - logging.debug(f"Deutsche TV-Premiere gefunden: {date_str}") - elif "Streaming-Premiere" in titel: - streaming_date = (parsed_date, date_str) - logging.debug(f"Deutsche Streaming-Premiere gefunden: {date_str}") + # Prüfe auf deutsche Daten + datum_elem = ea_angabe.find('ea-angabe-datum') + if datum_elem: + date_str = datum_elem.text.strip() + if '. ' in date_str: + date_str = date_str.split('. ', 1)[1] + + parsed_date = self.parse_date(date_str) + if parsed_date: + if "TV-Premiere" in titel and "Deutsche" in titel: + tv_date = (parsed_date, date_str) + logging.debug(f"Deutsche TV-Premiere gefunden: {date_str}") + elif "Streaming-Premiere" in titel and "Deutsche" in titel: + streaming_date = (parsed_date, date_str) + logging.debug(f"Deutsche Streaming-Premiere gefunden: {date_str}") + elif "deutschen Synchronfassung" in titel: + synchro_date = (parsed_date, date_str) + logging.debug(f"Deutsche Synchro-Premiere gefunden: {date_str}") # Hole die Datumspräferenz für diese Serie current_series = self.series_list.currentItem() @@ -523,18 +527,31 @@ class SerienChecker(QMainWindow): else: pref = "Bevorzuge Erstausstrahlung" + # Prüfe zuerst auf Synchro-Präferenz + if pref == "Bevorzuge deutsche Synchro": + if synchro_date: + result = synchro_date[1] + logging.debug(f"Synchro-Premiere gewählt: {result}") + return result + else: + logging.debug("Keine Synchro-Premiere gefunden, zeige TBA") + return "TBA" + + # Andere Präferenzen if pref == "Bevorzuge TV" and tv_date: result = tv_date[1] logging.debug(f"TV-Premiere gewählt: {result}") elif pref == "Bevorzuge Streaming" and streaming_date: result = streaming_date[1] logging.debug(f"Streaming-Premiere gewählt: {result}") - else: # Bevorzuge Erstausstrahlung oder wenn bevorzugtes Datum nicht verfügbar + else: # Bevorzuge Erstausstrahlung dates = [] if tv_date: dates.append(tv_date) if streaming_date: dates.append(streaming_date) + if synchro_date: + dates.append(synchro_date) if dates: result = min(dates, key=lambda x: x[0])[1]