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

Carnet d'adresse récupérer la date de mise à jour

6 réponses
Avatar
unbewusst.sein
chaque fiche de mon carnet d'adresse affiche (en bas à droite de la
fiche) une date de mise à jour :
Mise à jour : 24/01/06
par exemple

ce text n'est pas sélectionnable par la souris et je ne vois pas comment
retrouver cette date par ruby (en utilisant rb-appscript)

si je balaie toutes mes fiches, peu d'entre-elles ont une "custom date"
associée (à peine 8%), ces dates ont pour label "other"

l'array de custom dates est de longueur zéro ou un.

ensuite la date comprise dans la fiche (après Mise à jour) ne correspond
pas à celle que je recupère par programme, par exemple pour une fiche
donnée j'ai :
Mise à jour : 04/01/08
et la seule custom date pour cette fiche (donc de label "other") me
donne :
Thu Dec 20 17:50:55 +0100 2007
ce qui ne correspond pas...

qui aurait quelques lumières su ce sujet ???
--
Une Bévue

6 réponses

Avatar
Patrick Stadelmann
In article
<1ijx7un.1mnc3uv1nexs63N%,
(Une Bévue) wrote:

chaque fiche de mon carnet d'adresse affiche (en bas à droite de la
fiche) une date de mise à jour :
Mise à jour : 24/01/06
par exemple

ce text n'est pas sélectionnable par la souris et je ne vois pas comment
retrouver cette date par ruby (en utilisant rb-appscript)

si je balaie toutes mes fiches, peu d'entre-elles ont une "custom date"
associée (à peine 8%), ces dates ont pour label "other"



Dans le dictionnaire de l'application, "custom date" est décrit comme en
champ contenant une date arbitraire. Il faut plutôt regarder le champs
"modification date" :

tell application "Address Book"
get custom date of person 1
end tell

--> {}


tell application "Address Book"
get modification date of person 1
end tell

--> date "Thursday, December 7, 2006 10:36:53 PM"

Patrick
--
Patrick Stadelmann
Avatar
unbewusst.sein
Patrick Stadelmann wrote:


Dans le dictionnaire de l'application, "custom date" est décrit comme en
champ contenant une date arbitraire. Il faut plutôt regarder le champs
"modification date" :

tell application "Address Book"
get custom date of person 1
end tell

--> {}


tell application "Address Book"
get modification date of person 1
end tell

--> date "Thursday, December 7, 2006 10:36:53 PM"



OK, merci beaucoup Patrick, en ruby (rb-appscript) ça donne :
ab = app( "Address Book" )

person«.people[ its.name.contains( "Samüel") ].get[ 0 ]

puts person.modification_date.get

qui me donne :
# Fri Jul 11 18:19:10 +0200 2008

càd hier, je n'ai donc pas besoin d'ajouter un champ de date de synchro.

MAIS, question, comment as-tu trouvé cette propriété car, je ne la vois
nulle part dans le dictionnaire de carnet d'adresses (Address Book.sdef)
???

--
Une Bévue
Avatar
Patrick Stadelmann
In article
<1ijygr1.1897oe1xr13baN%,
(Une Bévue) wrote:

MAIS, question, comment as-tu trouvé cette propriété car, je ne la vois
nulle part dans le dictionnaire de carnet d'adresses (Address Book.sdef)
???



On la trouve en cherchant dans le dictionnaire via l'Editeur de Script.
Il ne faut pas lire directement les .sdef, car le dictionnaire peut être
modifié par l'application (par exemple en fonction de plug-in présents).
C'est probablement le cas avec le Carnet d'Adresses, car l'Editeur de
Script lance l'application à l'ouverture du dictionnaire.

Patrick
--
Patrick Stadelmann
Avatar
unbewusst.sein
Patrick Stadelmann wrote:


On la trouve en cherchant dans le dictionnaire via l'Editeur de Script.
Il ne faut pas lire directement les .sdef, car le dictionnaire peut être
modifié par l'application (par exemple en fonction de plug-in présents).
C'est probablement le cas avec le Carnet d'Adresses, car l'Editeur de
Script lance l'application à l'ouverture du dictionnaire.



oui, finalement je l'ai trouvé, en lisant le dico depuis Script Editor.
Mais bon, je l'ai trouvé sous "Entry" et pas person...

j'avoue avoir des difficultés à comprendre l'organisation du dico de
carnet d'adresse et/ou l'organisation même de carnet d'adresse.

y a t'il un tuto qqpart expliquant comment lire ces dicos, comment piger
leur organisation ?

autre chose, comme "modification date" me convient très bien,
j'aimerais, depuis applescript supprimer sur tous mes contacts le champ
custom date de la label "Sync. le:"

j'arrive à lire cette info par :
repeat with aCDate in custom date of thePerson
set the end of cDates to (label of aCDate as string) & " " & (value of
aCDate as string)
end repeat

mais je n'ai pas encore trouvé le moyen de supprimer un custom date de
label donné.

je ne sais d'ailleurs s'il faut utiliser remove ou delete ???

bon, j'ai essayé les deux :
set theLabels to {"Sync. le : ", "other"}
repeat with thePerson in thePeople
set the end of mDates to (the modification date of thePerson as
string) & " " & name of thePerson
repeat with aCDate in custom date of thePerson
if (label of aCDate as string) is in theLabels then
set the end of cDates to "|" & (label of aCDate as
string) & "| " & (value of aCDate as string)
-- delete aCDate -- from thePerson pas d'erreur mais ne
fait RIEN...
--remove aCDate from thePerson
--Erreur dans Carnet d'adresses :
NSReceiversCantHandleCommandScriptError
end if
end repeat
end repeat


dernière question ;-)
afin de synchronisation, j'aimerais ajouter dans carnet d'adresse un
champ représentant l'ID de la même personne mais côté téléphone du genre
:
"UID" pour le label et sa valeur "123" (un entier en string) par ex.

c'est possible ?

l'idéal étant de pouvoir rendre ce champ, dans la fiche "person", non
visble, seulement accessible par prog...
--
Une Bévue
Avatar
Patrick Stadelmann
In article
<1ik0odc.1a2drp21c73jo3N%,
(Une Bévue) wrote:

oui, finalement je l'ai trouvé, en lisant le dico depuis Script Editor.
Mais bon, je l'ai trouvé sous "Entry" et pas person...



Normal, c'est un propriété de la classe "entry", dont "person" hérite :

person n, pl people [inh. entry > item]

y a t'il un tuto qqpart expliquant comment lire ces dicos, comment piger
leur organisation ?



C'est à dire ?

mais je n'ai pas encore trouvé le moyen de supprimer un custom date de
label donné.



Ca semble ne pas fonctionner. La commande "delete every cutom date"
renvoie une erreur, alors que ça fonctionne p. ex. pour "every url".
Faire un bug report.

je ne sais d'ailleurs s'il faut utiliser remove ou delete ???



La commande standard d'AppleScript pour détruire un objet est "delete".

l'idéal étant de pouvoir rendre ce champ, dans la fiche "person", non
visble, seulement accessible par prog...



Chaque personne a un ID unique généré automatiquement (property : "id").

Patrick
--
Patrick Stadelmann
Avatar
unbewusst.sein
Patrick Stadelmann wrote:

Normal, c'est un propriété de la classe "entry", dont "person" hérite :

person n, pl people [inh. entry > item]



OK.


> y a t'il un tuto qqpart expliquant comment lire ces dicos, comment piger
> leur organisation ?

C'est à dire ?



bof, ton explication est suffisante, person héritant de entry...


> mais je n'ai pas encore trouvé le moyen de supprimer un custom date de
> label donné.

Ca semble ne pas fonctionner. La commande "delete every cutom date"
renvoie une erreur, alors que ça fonctionne p. ex. pour "every url".
Faire un bug report.



bon...

> je ne sais d'ailleurs s'il faut utiliser remove ou delete ???

La commande standard d'AppleScript pour détruire un objet est "delete".

> l'idéal étant de pouvoir rendre ce champ, dans la fiche "person", non
> visble, seulement accessible par prog...

Chaque personne a un ID unique généré automatiquement (property : "id").



oui, je sais le retrouver, mais là, je parlais de l'ID dans mon tél
portable, j'ai finalement choisi d'avoir un fichier à part, qui me donne
la correspondance entre l'ID/AddressBook et ID/Phone.

malheureusement l'ID/Phone est variable...
--
Une Bévue