Seite 1 von 1

Zeit eines Anruf in einer Vcard mit vobject einfügen!!!

Verfasst: Montag 7. November 2011, 20:45
von zizou2981
hallo alle,

ich habe mit vobject eine Vcard für Missed-Call erstellt, aber ich will nicht nur die nummer dadrin haben sondern auch die Zeitpunkt, an der der Anruf gekommen ist. Soweit ich weiss, brauche ich dafür den Parameter (X-IRMC-CALL-DATETIME), aber wenn ich das hier eingebe:

>>> card.add('X-IRMC-CALL-DATETIME')
<X-IRMC-CALL-DATETIME{}>
>>> card.X-IRMC-CALL-DATETIME.value = str(time.time)

dann kommt diese Fehlermeldung

File "<stdin>", line 1
SyntaxError: can't assign to operator

hat vielleicht jemand eine Ahnung, wie man X-IRMC-CALL-DATETIME mit vobject benutzen kann?

Danke
Zizou

Re: Zeit eines Anruf in einer Vcard mit vobject einfügen!!!

Verfasst: Montag 7. November 2011, 20:52
von BlackJack
@zizou2981: Irgendetwas mit einem ``-`` im Namen ist halt kein Name für Python. Das ``-`` ist ein Operator, gemeinhin für die Subtraktion verwendet. :-)

Mir scheint der `add()`-Aufruf gibt das erstellte und hinzugefügte Objekt als Ergebnis zurück. Nimm das doch einfach.

Re: Zeit eines Anruf in einer Vcard mit vobject einfügen!!!

Verfasst: Montag 7. November 2011, 21:05
von zizou2981
@BlackJack: das habe schon probiert aber es geht nicht. hier ist die ganze arbeit:

>>> import vobject
>>> import time
>>> from vobject import base
>>> card = vobject.vCard()
>>> card.add('n')
<N{} >
>>> card.n.value = vobject.vcard.Name(family='', given='')
>>> card.add('fn')
<FN{}>
>>> card.fn.value = ''
>>> card.add('tel')
<TEL{}>
>>> card.tel.value = '01764573443457'
>>> card.add('X-IRMC-CALL-DATETIME')
<X-IRMC-CALL-DATETIME{}>
>>> string = card.serialize()
>>> string
'BEGIN:VCARD\r\nVERSION:3.0\r\nFN:\r\nN:;;;;\r\nTEL:01764573443457\r\nX-IRMC-CAL
L-DATETIME:\r\nEND:VCARD\r\n'
>>> card.prettyPrint()
VCARD
X-IRMC-CALL-DATETIME:
VERSION: 3.0
TEL: 01764573443457
FN:
N:

du siehst schon, dass X-IRMC-CALL-DATETIME leer ist. das heißt ich muss genau wie bei TEL ein value eingeben und es muss danach wie in diesem Beispiel aussehen:

X-IRMC-CALL-DATETIME;MISSED:20100101T201200

irgend eine Idee?

Re: Zeit eines Anruf in einer Vcard mit vobject einfügen!!!

Verfasst: Montag 7. November 2011, 21:24
von zizou2981
jetzt habe ich es gefunden :lol:
man muss nur so machen:

start = card.add('X-IRMC-CALL-DATETIME')
start.value = str(time.time())

Danke