Skip to content

Latest commit

 

History

History
54 lines (44 loc) · 1.61 KB

File metadata and controls

54 lines (44 loc) · 1.61 KB

contact-deduplicator

Finale Spezifikation:

Config (JSON):

{
  "carddav_url": "https://cloud.example.com/remote.php/dav",
  "users": ["user1", "user2", "user3"]
}

Duplikat-Dialog:

  • Beide Kontakte vollständig anzeigen
  • Widersprüchliche Daten hervorheben
  • Benutzer entscheidet bei jedem Duplikat
  • Optionen: [M]erge / [S]kip / [Q]uit

Merge-Verhalten:

  • Alle vCard-Felder sammeln (auch unbekannte)
  • Listen kombinieren (E-Mails, Telefone, etc.)
  • Duplikate in Listen vermeiden
  • Widersprüche anzeigen (verschiedene Adressen, Namen, etc.)
  • Originale löschen, neuen Kontakt erstellen

Technische Umsetzung:

  1. Config laden/erstellen
  2. User auswählen (aus Config) + Passwort eingeben
  3. CardDAV verbinden
  4. Adressbuch wählen
  5. Duplikate finden (3 Kriterien)
  6. Interaktiver Merge-Dialog
  7. CardDAV-Änderungen durchführen

Nächste Schritte:

Soll ich jetzt eine saubere Implementierung von Grund auf neu schreiben?

Struktur-Vorschlag:

contact_deduplicator/
├── config.py          # Config-Management
├── carddav_client.py   # CardDAV-Verbindung
├── duplicate_finder.py # Duplikat-Logik
├── merger.py          # Merge-Funktionalität
├── ui.py              # Terminal-Interface
└── main.py            # Hauptprogramm

Data Quality Features:

  • All Phonenumbers with International so 01xxxx -> +491xxxx for Germany
  • All Contacts ask and add IM or Web with a list of posible IM (Matrix, Signal, Discord, Xing, Steam, Origin, Epic Games, Threema, Linkedin, OSM, Github usw.