clean addresses

This commit is contained in:
diegantobass 2025-05-08 11:08:57 +02:00
parent 585acde380
commit 3522b03652

View file

@ -4,6 +4,7 @@ import sys
import quopri import quopri
import base64 import base64
import pickle import pickle
import itertools
import phonenumbers import phonenumbers
import pythonvCard4 import pythonvCard4
from pythonvCard4.vcard import Contact from pythonvCard4.vcard import Contact
@ -80,9 +81,19 @@ for line in input_file:
for value in contact.custom[field]: for value in contact.custom[field]:
contact.custom[field] = quopri.decodestring(value).decode() contact.custom[field] = quopri.decodestring(value).decode()
# notes reencoding
if contact.note: if contact.note:
contact.note = quopri.decodestring(contact.note).decode() contact.note = quopri.decodestring(contact.note).decode()
# deduplicate and reencode address
if contact.adr != []:
adresses = []
for adresse in contact.adr:
adresses.append([quopri.decodestring(x).decode() for x in adresse["value"]])
clean = list(k for k,_ in itertools.groupby(adresses))
clean = [{"value":x, "type":["HOME"]} for x in clean]
contact.adr = clean
# rewrite contact as vcard # rewrite contact as vcard
vcf_text = contact.to_vcard() vcf_text = contact.to_vcard()
output.write(vcf_text) output.write(vcf_text)