qui parle le mork ?

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Avell Diroll
Le #630448
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 !

jean-michel bain-cornu
Le #630226
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()

Laurent Pointal
Le #630225
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.


Franssoa
Le #630221
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
Le #630220
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

Publicité
Poster une réponse
Anonyme