duplicate_checker.py aktualisiert

This commit is contained in:
2025-08-18 12:48:05 +00:00
parent f973c24df7
commit cb9abc32e2

View File

@@ -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 =====")