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

Vorrei creare un'applicazione di AppleScript per la Rubrica di Apple (Contatti) che vedrà 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 a colors i loro messaggi in Mail.app. Sono aggiunti a un gruppo "Work-In attesa". Una volta che il progetto prosegue, li aggiungo ad un gruppo "Work-Current". L'AppleScript avrebbe confrontato i due, cercare i duplicati e rimuoverli dal gruppo 'In attesa'.

Ecco uno script scritto in fretta. Dovrebbe funzionare. Ma non lo 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