Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

qui parle le mork ?

5 réponses
Avatar
Franssoa
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...

Help!
Franssoa

[1] http://developer.mozilla.org/en/docs/Mork_Structure
[2] http://www.jwz.org/hacks/mork.pl

5 réponses

Avatar
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 !

Avatar
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()

Avatar
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.


Avatar
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

Avatar
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.

Franssoa

[1] http://developer.mozilla.org/en/docs/Mork_Structure