This commit is contained in:
2025-04-16 16:08:49 +00:00
parent 2d107cc7ee
commit 4d982637e9

View File

@@ -2541,26 +2541,17 @@ def run_dispatcher(mode, sheet_handler, row_limit=None):
"""
Wählt den passenden Batch-Prozess basierend auf dem Modus.
Ermittelt die Startzeile dynamisch basierend auf dem Timestamp in der relevanten Spalte.
Die aufgerufenen Prozessfunktionen laden ihre Daten selbst.
"""
debug_print(f"Starte Dispatcher im Modus '{mode}' mit row_limit={row_limit}.")
header_rows = 5
# --- Startzeilen-Ermittlung basierend auf Modus ---
# Definiere, welche Spalte für welchen Modus den Startpunkt bestimmt
start_col_key = "Timestamp letzte Prüfung" # Standard (Spalte AO)
min_start_row = 7
# --- KORRIGIERT: Korrekte Schlüsselzuweisung für jeden Modus ---
if mode == "website":
start_col_key = "Website Scrape Timestamp" # Spalte AT
elif mode == "wiki":
start_col_key = "Wikipedia Timestamp" # Spalte AN
elif mode == "branch":
start_col_key = "Timestamp letzte Prüfung" # Spalte AO
elif mode == "combined":
start_col_key = "Timestamp letzte Prüfung" # Spalte AO (Combined startet, wo der letzte Schritt fehlt)
# --- Ende Korrektur ---
if mode == "website": start_col_key = "Website Scrape Timestamp" # AT
elif mode == "wiki": start_col_key = "Wikipedia Timestamp" # AN # Korrigiert: Wiki-Modus sollte AN prüfen für Start
elif mode == "branch": start_col_key = "Timestamp letzte Prüfung" # AO
elif mode == "combined": start_col_key = "Timestamp letzte Prüfung" # AO (Combined startet, wo der letzte Schritt fehlt)
debug_print(f"Dispatcher: Ermittle Startzeile basierend auf Spalte '{start_col_key}'...")
start_data_index = sheet_handler.get_start_row_index(check_column_key=start_col_key, min_sheet_row=min_start_row)
@@ -2570,10 +2561,9 @@ def run_dispatcher(mode, sheet_handler, row_limit=None):
return
start_row_index_in_sheet = start_data_index + header_rows + 1
# Hole Gesamtzahl der Zeilen (wird im Handler aktualisiert)
total_sheet_rows = len(sheet_handler.sheet_values)
# Prüfungen für Start- und Endzeile (wie gehabt)
if start_data_index >= len(sheet_handler.get_data()):
debug_print(f"Ermittelter Start-Daten-Index ({start_data_index}) liegt nach der letzten Datenzeile. Keine neuen Zeilen zu verarbeiten. Dispatcher beendet.")
return
@@ -2581,7 +2571,6 @@ def run_dispatcher(mode, sheet_handler, row_limit=None):
debug_print(f"Sheet hat keine Datenzeilen oder Startzeile ({start_row_index_in_sheet}) ist ungültig. Dispatcher beendet.")
return
# --- Endzeilen-Ermittlung ---
if row_limit is not None and row_limit > 0:
end_row_index_in_sheet = min(start_row_index_in_sheet + row_limit - 1, total_sheet_rows)
elif row_limit == 0:
@@ -2606,14 +2595,18 @@ def run_dispatcher(mode, sheet_handler, row_limit=None):
process_branch_batch(sheet_handler, start_row_index_in_sheet, end_row_index_in_sheet)
elif mode == "combined":
debug_print("--- Start Combined Mode: Wiki ---")
process_verification_only(sheet_handler, start_row_index_in_sheet, end_row_index_in_sheet) # Lädt Daten, prüft AN, setzt AN
# Kurze Pause einfügen, um Google Sheets Zeit für die Aktualisierung zu geben (optional aber sicherer)
time.sleep(3)
debug_print("--- Start Combined Mode: Website ---")
process_website_batch(sheet_handler, start_row_index_in_sheet, end_row_index_in_sheet) # Lädt Daten, prüft AT, setzt AT+AP
time.sleep(3) # Kurze Pause
process_verification_only(sheet_handler, start_row_index_in_sheet, end_row_index_in_sheet) # Prüft AX, Setzt AX
# --- WEBSITE-TEIL HIER ENTFERNT ---
# debug_print("--- Start Combined Mode: Website ---")
# process_website_batch(sheet_handler, start_row_index_in_sheet, end_row_index_in_sheet) # Würde AT prüfen/setzen
debug_print("--- Combined Mode: Website-Scraping wird übersprungen ---") # Explizite Meldung
# Optional: Kurze Pause trotzdem beibehalten? Eher nicht nötig.
# time.sleep(1)
debug_print("--- Start Combined Mode: Branch ---")
process_branch_batch(sheet_handler, start_row_index_in_sheet, end_row_index_in_sheet) # Lädt Daten, prüft AO, setzt AO+AP
process_branch_batch(sheet_handler, start_row_index_in_sheet, end_row_index_in_sheet) # Prüft AO, Setzt AO+AP
debug_print("--- Combined Mode abgeschlossen ---")
else:
debug_print(f"Ungültiger Modus '{mode}' wurde im Dispatcher übergeben.")