Est-ce que quelqu'un connait un parser mork [1] en python (format
utilisé notamment par le carnet d'adresse .mab de thunderbird) pour en
récupérer quelque chose d'exploitable ? (le but étant de faire un carnet
d'adresse au format pdf, de selectionner rapidement un groupe
d'adresses, sortir des étiquettes...)
J'ai vainement cherché. La seule chose qui semble exister est un parser
en perl [2], mais je ne parle pas cette langue...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Avell Diroll
Franssoa wrote:
Bonjour,
Est-ce que quelqu'un connait un parser mork [1] en python (format utilisé notamment par le carnet d'adresse .mab de thunderbird) pour en récupérer quelque chose d'exploitable ? (le but étant de faire un carnet d'adresse au format pdf, de selectionner rapidement un groupe d'adresses, sortir des étiquettes...)
J'ai vainement cherché. La seule chose qui semble exister est un parser en perl [2], mais je ne parle pas cette langue...
En cherchant un peu plus loin, je suis tombé sur ce lien: http://wiki.mozilla.org/Mork
Qui renvoie vers 2 hacks: http://www.probo.com/timr/parsemsf.py https://bugzilla.mozilla.org/attachment.cgi?id5024&action=view
... Bonne continuation
Ju -- Celui qui prétend que l'on peut croître indéfiniment dans un espace limité est soit un fou, soit un économiste !
Franssoa wrote:
Bonjour,
Est-ce que quelqu'un connait un parser mork [1] en python (format
utilisé notamment par le carnet d'adresse .mab de thunderbird) pour en
récupérer quelque chose d'exploitable ? (le but étant de faire un carnet
d'adresse au format pdf, de selectionner rapidement un groupe
d'adresses, sortir des étiquettes...)
J'ai vainement cherché. La seule chose qui semble exister est un parser
en perl [2], mais je ne parle pas cette langue...
En cherchant un peu plus loin, je suis tombé sur ce lien:
http://wiki.mozilla.org/Mork
Qui renvoie vers 2 hacks:
http://www.probo.com/timr/parsemsf.py
https://bugzilla.mozilla.org/attachment.cgi?id5024&action=view
... Bonne continuation
Ju
--
Celui qui prétend que l'on peut croître indéfiniment dans un espace
limité est soit un fou, soit un économiste !
Est-ce que quelqu'un connait un parser mork [1] en python (format utilisé notamment par le carnet d'adresse .mab de thunderbird) pour en récupérer quelque chose d'exploitable ? (le but étant de faire un carnet d'adresse au format pdf, de selectionner rapidement un groupe d'adresses, sortir des étiquettes...)
J'ai vainement cherché. La seule chose qui semble exister est un parser en perl [2], mais je ne parle pas cette langue...
En cherchant un peu plus loin, je suis tombé sur ce lien: http://wiki.mozilla.org/Mork
Qui renvoie vers 2 hacks: http://www.probo.com/timr/parsemsf.py https://bugzilla.mozilla.org/attachment.cgi?id5024&action=view
... Bonne continuation
Ju -- Celui qui prétend que l'on peut croître indéfiniment dans un espace limité est soit un fou, soit un économiste !
jean-michel bain-cornu
Bonsoir,
Est-ce que quelqu'un connait un parser mork [1] en python (format utilisé notamment par le carnet d'adresse .mab de thunderbird) pour en récupérer quelque chose d'exploitable ? (le but étant de faire un carnet d'adresse au format pdf, de selectionner rapidement un groupe d'adresses, sortir des étiquettes...)
J'avais cherché ce genre de chose pour traiter les fichiers .vcf de Outlook, et tout ce que j'avais trouvé m'avais semblé bin compliqué.
A tout hasard, je te mets le bout code qui gère ça dans wxQueries, ça pourra te donner des idées (le mork ne semble à priori pas énormément différent).
A+ jm
def vcfProcess(self,fileName): vcfDic= {} for line in file(fileName,'r').readlines(): s= line.strip() #--name if s.find('N:') == 0: #example: N:Durand;Jean;;DT for i,field in enumerate(s.split(':')[1].split(';')): if i== 0: vcfDic['lastName']= field if i== 1: vcfDic['firstName']= field if i== 3: vcfDic['title']= field #--company if s.find('ORG:') == 0: #example: ORG:Ets Lafrime field= s.split(':')[1] vcfDic['org']= field #--phone if s.find('TEL;WORK;VOICE:') == 0: #example: TEL;WORK;VOICE:45555 field= s.split(':')[1] vcfDic['phone']= field if s.find('TEL;HOME;VOICE:') == 0 and not vcfDic.has_key('phone'): field= s.split(':')[1] vcfDic['phone']= field if s.find('TEL;HOME:') == 0 and not vcfDic.has_key('phone'): field= s.split(':')[1] vcfDic['phone']= field if s.find('TEL:') == 0 and not vcfDic.has_key('phone'): field= s.split(':')[1] vcfDic['phone']= field if s.find('TEL;CELL;VOICE:') == 0: field= s.split(':')[1] vcfDic['mobile']= field if s.find('TEL;CELL:') == 0 and not vcfDic.has_key('mobile'): field= s.split(':')[1] vcfDic['mobile']= field #--email if s.find('EMAIL;PREF;INTERNET:') == 0: #example: EMAIL;PREF;INTERNET: field= s.split(':')[1] vcfDic['email']= field #--adress if s.find('ADR;WORK:') == 0: #example: ADR;WORK:;;rue lafrime;lagny;77;77400;France adr3= '' for i,field in enumerate(s.split(':')[1].split(';')): if i== 1: vcfDic['address1']= field if i== 2: vcfDic['address2']= field if i== 3: adr3= field if i== 5: adr3= '%s %s'%(field,adr3) if i== 6: vcfDic['address4']= field vcfDic['address3']= adr3 #-- if vcfDic.has_key('lastName'): self.lastName.setValue(vcfDic['lastName']) self.lastName.refresh() if vcfDic.has_key('firstName'): self.firstName.setValue(vcfDic['firstName']) self.firstName.refresh() if vcfDic.has_key('title'): self.title.setValue(vcfDic['title']) self.title.refresh() if vcfDic.has_key('org'): self.oname.getKeyFromText(vcfDic['org']) self.oname.refresh() if vcfDic.has_key('phone'): self.phone.setValue(vcfDic['phone']) self.phone.refresh() if vcfDic.has_key('mobile'): self.mobile.setValue(vcfDic['mobile']) self.mobile.refresh() if vcfDic.has_key('email'): self.email.setValue(vcfDic['email']) self.email.refresh() if vcfDic.has_key('address1'): self.address1.setValue(vcfDic['address1']) self.address1.refresh() if vcfDic.has_key('address2'): self.address2.setValue(vcfDic['address2']) self.address2.refresh() if vcfDic.has_key('address3'): self.address3.setValue(vcfDic['address3']) self.address3.refresh() if vcfDic.has_key('address4'): self.address4.setValue(vcfDic['address4']) self.address4.refresh()
Bonsoir,
Est-ce que quelqu'un connait un parser mork [1] en python (format
utilisé notamment par le carnet d'adresse .mab de thunderbird) pour
en récupérer quelque chose d'exploitable ? (le but étant de faire un
carnet d'adresse au format pdf, de selectionner rapidement un groupe
d'adresses, sortir des étiquettes...)
J'avais cherché ce genre de chose pour traiter les fichiers .vcf de
Outlook, et tout ce que j'avais trouvé m'avais semblé bin compliqué.
A tout hasard, je te mets le bout code qui gère ça dans wxQueries, ça
pourra te donner des idées (le mork ne semble à priori pas énormément
différent).
A+
jm
def vcfProcess(self,fileName):
vcfDic= {}
for line in file(fileName,'r').readlines():
s= line.strip()
#--name
if s.find('N:') == 0:
#example: N:Durand;Jean;;DT
for i,field in enumerate(s.split(':')[1].split(';')):
if i== 0: vcfDic['lastName']= field
if i== 1: vcfDic['firstName']= field
if i== 3: vcfDic['title']= field
#--company
if s.find('ORG:') == 0:
#example: ORG:Ets Lafrime
field= s.split(':')[1]
vcfDic['org']= field
#--phone
if s.find('TEL;WORK;VOICE:') == 0:
#example: TEL;WORK;VOICE:45555
field= s.split(':')[1]
vcfDic['phone']= field
if s.find('TEL;HOME;VOICE:') == 0 and not vcfDic.has_key('phone'):
field= s.split(':')[1]
vcfDic['phone']= field
if s.find('TEL;HOME:') == 0 and not vcfDic.has_key('phone'):
field= s.split(':')[1]
vcfDic['phone']= field
if s.find('TEL:') == 0 and not vcfDic.has_key('phone'):
field= s.split(':')[1]
vcfDic['phone']= field
if s.find('TEL;CELL;VOICE:') == 0:
field= s.split(':')[1]
vcfDic['mobile']= field
if s.find('TEL;CELL:') == 0 and not vcfDic.has_key('mobile'):
field= s.split(':')[1]
vcfDic['mobile']= field
#--email
if s.find('EMAIL;PREF;INTERNET:') == 0:
#example: EMAIL;PREF;INTERNET:jean@jmbc.fr
field= s.split(':')[1]
vcfDic['email']= field
#--adress
if s.find('ADR;WORK:') == 0:
#example: ADR;WORK:;;rue lafrime;lagny;77;77400;France
adr3= ''
for i,field in enumerate(s.split(':')[1].split(';')):
if i== 1: vcfDic['address1']= field
if i== 2: vcfDic['address2']= field
if i== 3: adr3= field
if i== 5: adr3= '%s %s'%(field,adr3)
if i== 6: vcfDic['address4']= field
vcfDic['address3']= adr3
#--
if vcfDic.has_key('lastName'):
self.lastName.setValue(vcfDic['lastName'])
self.lastName.refresh()
if vcfDic.has_key('firstName'):
self.firstName.setValue(vcfDic['firstName'])
self.firstName.refresh()
if vcfDic.has_key('title'):
self.title.setValue(vcfDic['title'])
self.title.refresh()
if vcfDic.has_key('org'):
self.oname.getKeyFromText(vcfDic['org'])
self.oname.refresh()
if vcfDic.has_key('phone'):
self.phone.setValue(vcfDic['phone'])
self.phone.refresh()
if vcfDic.has_key('mobile'):
self.mobile.setValue(vcfDic['mobile'])
self.mobile.refresh()
if vcfDic.has_key('email'):
self.email.setValue(vcfDic['email'])
self.email.refresh()
if vcfDic.has_key('address1'):
self.address1.setValue(vcfDic['address1'])
self.address1.refresh()
if vcfDic.has_key('address2'):
self.address2.setValue(vcfDic['address2'])
self.address2.refresh()
if vcfDic.has_key('address3'):
self.address3.setValue(vcfDic['address3'])
self.address3.refresh()
if vcfDic.has_key('address4'):
self.address4.setValue(vcfDic['address4'])
self.address4.refresh()
Est-ce que quelqu'un connait un parser mork [1] en python (format utilisé notamment par le carnet d'adresse .mab de thunderbird) pour en récupérer quelque chose d'exploitable ? (le but étant de faire un carnet d'adresse au format pdf, de selectionner rapidement un groupe d'adresses, sortir des étiquettes...)
J'avais cherché ce genre de chose pour traiter les fichiers .vcf de Outlook, et tout ce que j'avais trouvé m'avais semblé bin compliqué.
A tout hasard, je te mets le bout code qui gère ça dans wxQueries, ça pourra te donner des idées (le mork ne semble à priori pas énormément différent).
A+ jm
def vcfProcess(self,fileName): vcfDic= {} for line in file(fileName,'r').readlines(): s= line.strip() #--name if s.find('N:') == 0: #example: N:Durand;Jean;;DT for i,field in enumerate(s.split(':')[1].split(';')): if i== 0: vcfDic['lastName']= field if i== 1: vcfDic['firstName']= field if i== 3: vcfDic['title']= field #--company if s.find('ORG:') == 0: #example: ORG:Ets Lafrime field= s.split(':')[1] vcfDic['org']= field #--phone if s.find('TEL;WORK;VOICE:') == 0: #example: TEL;WORK;VOICE:45555 field= s.split(':')[1] vcfDic['phone']= field if s.find('TEL;HOME;VOICE:') == 0 and not vcfDic.has_key('phone'): field= s.split(':')[1] vcfDic['phone']= field if s.find('TEL;HOME:') == 0 and not vcfDic.has_key('phone'): field= s.split(':')[1] vcfDic['phone']= field if s.find('TEL:') == 0 and not vcfDic.has_key('phone'): field= s.split(':')[1] vcfDic['phone']= field if s.find('TEL;CELL;VOICE:') == 0: field= s.split(':')[1] vcfDic['mobile']= field if s.find('TEL;CELL:') == 0 and not vcfDic.has_key('mobile'): field= s.split(':')[1] vcfDic['mobile']= field #--email if s.find('EMAIL;PREF;INTERNET:') == 0: #example: EMAIL;PREF;INTERNET: field= s.split(':')[1] vcfDic['email']= field #--adress if s.find('ADR;WORK:') == 0: #example: ADR;WORK:;;rue lafrime;lagny;77;77400;France adr3= '' for i,field in enumerate(s.split(':')[1].split(';')): if i== 1: vcfDic['address1']= field if i== 2: vcfDic['address2']= field if i== 3: adr3= field if i== 5: adr3= '%s %s'%(field,adr3) if i== 6: vcfDic['address4']= field vcfDic['address3']= adr3 #-- if vcfDic.has_key('lastName'): self.lastName.setValue(vcfDic['lastName']) self.lastName.refresh() if vcfDic.has_key('firstName'): self.firstName.setValue(vcfDic['firstName']) self.firstName.refresh() if vcfDic.has_key('title'): self.title.setValue(vcfDic['title']) self.title.refresh() if vcfDic.has_key('org'): self.oname.getKeyFromText(vcfDic['org']) self.oname.refresh() if vcfDic.has_key('phone'): self.phone.setValue(vcfDic['phone']) self.phone.refresh() if vcfDic.has_key('mobile'): self.mobile.setValue(vcfDic['mobile']) self.mobile.refresh() if vcfDic.has_key('email'): self.email.setValue(vcfDic['email']) self.email.refresh() if vcfDic.has_key('address1'): self.address1.setValue(vcfDic['address1']) self.address1.refresh() if vcfDic.has_key('address2'): self.address2.setValue(vcfDic['address2']) self.address2.refresh() if vcfDic.has_key('address3'): self.address3.setValue(vcfDic['address3']) self.address3.refresh() if vcfDic.has_key('address4'): self.address4.setValue(vcfDic['address4']) self.address4.refresh()
Laurent Pointal
jean-michel bain-cornu wrote:
Bonsoir,
Est-ce que quelqu'un connait un parser mork [1] en python (format utilisé notamment par le carnet d'adresse .mab de thunderbird) pour en récupérer quelque chose d'exploitable ? (le but étant de faire un carnet d'adresse au format pdf, de selectionner rapidement un groupe d'adresses, sortir des étiquettes...)
J'avais cherché ce genre de chose pour traiter les fichiers .vcf de Outlook, et tout ce que j'avais trouvé m'avais semblé bin compliqué.
A tout hasard, je te mets le bout code qui gère ça dans wxQueries, ça pourra te donner des idées (le mork ne semble à priori pas énormément différent).
Au cas où, pour vcf: http://www.wotsit.org/list.asp?search=vcf&button=GO%21
Mais wotsit n'a rien sur mork, il renvoie vers Google qui donne: http://www.google.com/custom?q=mork+format
Ca semble au moins bien documenté... bon codage.
jean-michel bain-cornu wrote:
Bonsoir,
Est-ce que quelqu'un connait un parser mork [1] en python (format
utilisé notamment par le carnet d'adresse .mab de thunderbird) pour
en récupérer quelque chose d'exploitable ? (le but étant de faire un
carnet d'adresse au format pdf, de selectionner rapidement un groupe
d'adresses, sortir des étiquettes...)
J'avais cherché ce genre de chose pour traiter les fichiers .vcf de
Outlook, et tout ce que j'avais trouvé m'avais semblé bin compliqué.
A tout hasard, je te mets le bout code qui gère ça dans wxQueries, ça
pourra te donner des idées (le mork ne semble à priori pas énormément
différent).
Au cas où, pour vcf:
http://www.wotsit.org/list.asp?search=vcf&button=GO%21
Mais wotsit n'a rien sur mork, il renvoie vers Google qui donne:
http://www.google.com/custom?q=mork+format
Est-ce que quelqu'un connait un parser mork [1] en python (format utilisé notamment par le carnet d'adresse .mab de thunderbird) pour en récupérer quelque chose d'exploitable ? (le but étant de faire un carnet d'adresse au format pdf, de selectionner rapidement un groupe d'adresses, sortir des étiquettes...)
J'avais cherché ce genre de chose pour traiter les fichiers .vcf de Outlook, et tout ce que j'avais trouvé m'avais semblé bin compliqué.
A tout hasard, je te mets le bout code qui gère ça dans wxQueries, ça pourra te donner des idées (le mork ne semble à priori pas énormément différent).
Au cas où, pour vcf: http://www.wotsit.org/list.asp?search=vcf&button=GO%21
Mais wotsit n'a rien sur mork, il renvoie vers Google qui donne: http://www.google.com/custom?q=mork+format
Ca semble au moins bien documenté... bon codage.
Franssoa
En cherchant un peu plus loin, je suis tombé sur ce lien: http://wiki.mozilla.org/Mork
Qui renvoie vers 2 hacks: http://www.probo.com/timr/parsemsf.py https://bugzilla.mozilla.org/attachment.cgi?id5024&action=view
Le deuxième me semblait plus prometteur, il lit parfaitement le fichier mab... mais... lorsque je modifie une fiche dans thunderbird, les modif ne sont plus lues, ni la fiche originale :-( Je continue mes recherches...
Franssoa
En cherchant un peu plus loin, je suis tombé sur ce lien:
http://wiki.mozilla.org/Mork
Qui renvoie vers 2 hacks:
http://www.probo.com/timr/parsemsf.py
https://bugzilla.mozilla.org/attachment.cgi?id5024&action=view
Le deuxième me semblait plus prometteur, il lit parfaitement le fichier
mab... mais... lorsque je modifie une fiche dans thunderbird, les modif
ne sont plus lues, ni la fiche originale :-(
Je continue mes recherches...
En cherchant un peu plus loin, je suis tombé sur ce lien: http://wiki.mozilla.org/Mork
Qui renvoie vers 2 hacks: http://www.probo.com/timr/parsemsf.py https://bugzilla.mozilla.org/attachment.cgi?id5024&action=view
Le deuxième me semblait plus prometteur, il lit parfaitement le fichier mab... mais... lorsque je modifie une fiche dans thunderbird, les modif ne sont plus lues, ni la fiche originale :-( Je continue mes recherches...
Franssoa
Franssoa
Mais wotsit n'a rien sur mork, il renvoie vers Google qui donne: http://www.google.com/custom?q=mork+format
Ca semble au moins bien documenté... bon codage.
Oui, c'est effectivement documenté [1]. Mais d'une part mon anglais est,
comment dire, hum, approximatif, et d'autre part, je ne suis pas assez compétent pour comprendre la grammaire. D'après mes recherches, je ne suis pas le seul à trouver ce format particulièrement im[biiip]able.
Mais wotsit n'a rien sur mork, il renvoie vers Google qui donne:
http://www.google.com/custom?q=mork+format
Ca semble au moins bien documenté... bon codage.
Oui, c'est effectivement documenté [1]. Mais d'une part mon anglais est,
comment dire, hum, approximatif, et d'autre part, je ne suis pas assez
compétent pour comprendre la grammaire.
D'après mes recherches, je ne suis pas le seul à trouver ce format
particulièrement im[biiip]able.
Mais wotsit n'a rien sur mork, il renvoie vers Google qui donne: http://www.google.com/custom?q=mork+format
Ca semble au moins bien documenté... bon codage.
Oui, c'est effectivement documenté [1]. Mais d'une part mon anglais est,
comment dire, hum, approximatif, et d'autre part, je ne suis pas assez compétent pour comprendre la grammaire. D'après mes recherches, je ne suis pas le seul à trouver ce format particulièrement im[biiip]able.