1 votes

AppleScript pour comparer les contacts de deux groupes et supprimer le doublon d'un groupe

Je veux créer un AppleScript pour l'application Carnet d'adresses (Contacts) d'Apple qui examinera deux groupes, et si un contact est dans un groupe, il le supprimera de l'autre groupe.

Plus précisément, j'ajoute des clients potentiels à mon carnet d'adresses afin de pouvoir coder leurs messages par couleur dans Mail.app. Ils sont ajoutés à un groupe "Travail - En attente". Une fois que le projet avance, je les ajoute à un groupe "Travail - En cours". L'AppleScript compare les deux, recherche les doublons et les supprime du groupe "En attente".

3voto

markhunte Points 11634

Voici un script écrit rapidement. Il devrait fonctionner. Mais je ne l'ai pas revu à la baisse pour être efficace.

tell application "Contacts"

    (*get the names of all groups *)
    set theGroupNames to name of groups

    (*choose you current group, the one to keep entries*)
    set text_returnedCurrent to choose from list theGroupNames with prompt "Choose Current Group" default items "Work - Current" without multiple selections allowed

    (*choose you pending group, the one to remove entries*)
    set text_returnedPending to choose from list theGroupNames with prompt "Choose Pending Group" default items "Work - Pending" without multiple selections allowed
    (*Get the people/entries of the Current group*)
    set the_peopleCurrent to people of group (text_returnedCurrent as text)

    (*Get the people/entries of the Pending group*)
    set the_peoplePending to people of group (text_returnedPending as text)

    (*iterate through the people of the Current group*)
    repeat with i from 1 to number of items in the_peopleCurrent

        (*get a person from the  Current group*)
        set thisPersonCurrent to item i of the_peopleCurrent

        (*iterate through ALL the people of the Pending group**)
        repeat with x from 1 to number of items in the_peoplePending

            (*get a person from the  Pending group*)
            set thisPersonPending to item x of the_peoplePending

            (*Check if the person from the Current group is the same person as thisPersonPending*)
            if thisPersonCurrent is equal to thisPersonPending then
                (* if they are remove them.  *)
                remove thisPersonPending from group (text_returnedPending as text)

                (*save the contacts changes*)
                save

            end if
        end repeat

    end repeat

end tell

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X