From 9151351ac9aa69f13a347474cfabb289fdacc1dc Mon Sep 17 00:00:00 2001 From: diegantobass Date: Wed, 7 May 2025 10:00:29 +0200 Subject: [PATCH] refine parsing with pythhonvCard4 --- vcf_cleaner.py | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/vcf_cleaner.py b/vcf_cleaner.py index 2164255..0e8aea0 100644 --- a/vcf_cleaner.py +++ b/vcf_cleaner.py @@ -1,19 +1,33 @@ import pickle from pythonvCard4.vcard import Contact +import base64 +import os -input = open("contacts.vcf", 'r').readlines() -output = open("processed.vcf", 'w') +file = open("contacts.vcf", 'r').readlines() -for line in input: +cards = [] - if "TEL" in line: - line = line.replace('-', '') - if ":06" in line: line = line.replace(":06", ":+336") - if ":07" in line: line = line.replace(":07", ":+337") - if ":00" in line: line = line.replace(":00", ":+") - if ":09" in line: line = line.replace(":09", ":+339") - if ":01" in line: line = line.replace(":01", ":+331") +current_card = "" +for line in file: + current_card += line + if "END:VCARD" in line: + contact = Contact.from_vcard(current_card) + if "PHOTO" in contact.custom and len(contact.custom["PHOTO"]) > 1: + os.makedirs("photo/" + contact.fn, exist_ok=True) + for image in range(len(contact.custom["PHOTO"])): + with open("photo/" + contact.fn + "/" + str(image) + ".jpg", "wb") as f: + f.write(base64.decodebytes(str.encode(contact.custom["PHOTO"][image]))) - print(line) + cards.append(contact) + current_card = "" + continue - output.write(line) + +# contact = Contact.from_vcard(cards[156]) +# print(contact.custom["PHOTO"]) + +# vcf_text = contact.to_vcard() +# print(vcf_text) +# open('test.vcf', 'w').write(vcf_text) + +print(len(cards))