diff --git a/duplicate_checker.py b/duplicate_checker.py index 0f272f07..ca54f8e0 100644 --- a/duplicate_checker.py +++ b/duplicate_checker.py @@ -416,31 +416,25 @@ def main(job_id=None): # --- Ergebnisse zurückschreiben --- logger.info("Matching-Prozess abgeschlossen. Bereite Ergebnisse für den Upload vor...") - update_status(job_id, "Läuft", "Schreibe Ergebnisse zurück ins Google Sheet...") + update_status(job_id, "Läuft", "Schreibe Ergebnisse zurück ins Sheet...") result_df = pd.DataFrame(results) - # Füge die Ergebnisse zu den Originaldaten hinzu - # original_matching_df ist die saubere Kopie von Anfang an - output_df = pd.concat([original_matching_df.reset_index(drop=True), result_df], axis=1) - - # Backup-Logik - now = datetime.now().strftime("%Y-%m-%d_%H-%M") - backup_path = os.path.join(Config.LOG_DIR, f"{now}_backup_{MATCHING_SHEET_NAME}.csv") - try: - # Stelle sicher, dass das Log-Verzeichnis existiert - os.makedirs(Config.LOG_DIR, exist_ok=True) - output_df.to_csv(backup_path, index=False, encoding='utf-8-sig', sep=';') - logger.info(f"Lokales Backup der Ergebnisse wurde in '{backup_path}' geschrieben.") - except Exception as e: - logger.warning(f"Backup der Ergebnisse konnte nicht geschrieben werden: {e}") + # KORREKTUR: Füge die Ergebnisspalten zum MODIFIZIERTEN match_df hinzu, + # der die neuen URLs aus der SerpAPI-Suche enthält. + # Wir benutzen die Original-Indizes, um sicherzustellen, dass alles passt. + final_df = match_df.join(result_df) + # Bereinige die temporären Spalten für eine saubere Ausgabe + cols_to_drop = ['normalized_name', 'normalized_domain', 'block_keys', 'Effektive Website', 'domain_use_flag'] + final_df = final_df.drop(columns=[col for col in cols_to_drop if col in final_df.columns]) + # Konvertiere in Liste von Listen für den Upload - data_to_write = [output_df.columns.tolist()] + output_df.fillna('').values.tolist() + data_to_write = [final_df.columns.tolist()] + final_df.fillna('').values.tolist() logger.info(f"Versuche, {len(data_to_write) - 1} Ergebniszeilen in das Sheet '{MATCHING_SHEET_NAME}' zu schreiben...") - ok = sheet.clear_and_write_data(MATCHING_SHEET_NAME, data_to_write) + ok = sheet_handler.clear_and_write_data(MATCHING_SHEET_NAME, data_to_write) if ok: logger.info("Ergebnisse erfolgreich in das Google Sheet geschrieben.") @@ -449,6 +443,7 @@ def main(job_id=None): logger.error("Fehler beim Schreiben der Ergebnisse ins Google Sheet.") update_status(job_id, "Fehlgeschlagen", "Fehler beim Schreiben ins Google Sheet.") + # Summary serp_counts = Counter((str(x).lower() for x in write_df.get('Serp Vertrauen', []))) logger.info("===== Summary =====")