2
0

vcfExport_1.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # Doc
  2. # Script to extract Contacts from Sailfish Contact SQLite DB located at
  3. #
  4. # Links
  5. # FileFormatdescription: https://docs.fileformat.com/email/vcf/#vcf-30-example
  6. # Pytho vobject: http://eventable.github.io/vobject/
  7. # ChangeLog
  8. # 2021-07-30 - first version VObject
  9. import sqlite3
  10. import vobject
  11. import uuid
  12. SQLconn = sqlite3.connect('../Testdata/system/Contacts/qtcontacts-sqlite/contacts.db')
  13. try:
  14. SQLContCur = SQLconn.cursor()
  15. for row in SQLContCur.execute('SELECT * FROM Contacts'):
  16. print(row[4] + ' ' + row[6])
  17. # contactID abfragen
  18. contactID=row[0]
  19. vcf = vobject.vCard()
  20. vcf.add('uid').value = str(uuid.uuid4())
  21. #vcf.add('uid').value = "Testdaten"
  22. vcf.add('n')
  23. vcf.n.value = vobject.vcard.Name( family=row[6], given=row[4] )
  24. vcf.add('fn')
  25. vcf.fn.value =row[1]
  26. SQLEmailCur = SQLconn.cursor()
  27. ## Abfragen E-Mail-Adressen
  28. for Emailrow in SQLEmailCur.execute('SELECT * from EmailAddresses JOIN Details on Details.detailId= EmailAddresses.detailId where EmailAddresses.contactId = ' + str(contactID)):
  29. # debug ausgabe
  30. print("debug: " + Emailrow[2])
  31. vcf.add('email')
  32. vcf.email.value = Emailrow[2]
  33. vcf.email.type_param = Emailrow[9]
  34. except:
  35. print("Error in executing SQL")
  36. print(vcf.serialize())