AppleScript per confrontare i contatti in due gruppi e rimuovere i duplicati da un gruppo

1

Voglio creare un AppleScript per l'app della rubrica (contatti) di Apple che esaminerà due gruppi e, se un contatto è in un gruppo, lo rimuoverà dall'altro gruppo.

In particolare, aggiungo potenziali clienti alla mia rubrica in modo da poter codificare i loro messaggi in Mail.app. Vengono aggiunti a un gruppo "In attesa di lavoro". Una volta che il progetto va avanti, li aggiungo a un gruppo "Lavoro - Corrente". L'AppleScript confronta i due, cerca i duplicati e li rimuove dal gruppo "In sospeso".

    
posta George C 17.08.2012 - 21:32
fonte

1 risposta

3

Ecco uno script scritto rapidamente. Dovrebbe funzionare. Ma non l'ho rivisto per essere efficiente.

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
    
risposta data 18.08.2012 - 13:50
fonte

Leggi altre domande sui tag