Wie kann ich benutzerdefinierte Labels von Contacts.app automatisch mit AppleScript ändern?

Gibt es eine Möglichkeit, die aktuellen Bezeichnungen in Contacts.app mithilfe von AppleScript basierend auf bestimmten Kriterien in benutzerdefinierte zu ändern?

Hier ist, was ich meine:

Ich brauche das Skript, um meine Kontakte zu durchsuchen, um die Standardbezeichnungen der Telefonnummern wie Mobil, Zuhause, Arbeit usw. in spezifische Bezeichnungen zu ändern, die auf den ersten 3 Ziffern der Telefonnummer basieren. Wenn die Bezeichnung bereits geändert wurde oder die Kriterien nicht zutreffen, sollte das Skript diese Telefonnummer überspringen.

Hier ist ein Beispiel:

  • Wenn die Telefonnummer mit 079 beginnt, ändern Sie die Bezeichnung in „zain“.
  • Wenn die Telefonnummer mit 078 beginnt, ändern Sie die Bezeichnung in "umniah".

Ist das überhaupt möglich?

Antworten (1)

Hier ist ein Beispiel (schnelles Scribble), wie Sie die Etiketten erhalten und verarbeiten können.

tell application "Contacts"
    set theNumber to "079"

    set (label of phones of people whose value starts with theNumber) to "test"
    save


end tell

Stellen Sie theNumber auf Ihre eigene Nummer ein.

UND ICH WÜRDE DAS ADRESSBUCH SICHERN, BEVOR SIE ANFANGEN, DAMIT ZU SPIELEN.

Aktualisieren.

Ich habe das Skript auf chaco geändert, wenn die Telefonnummer mit beginnt und nicht enthält.


'label' = ein Artikellabel. dh 'Mobil', 'iPhone', 'Startseite'

Telefone = die Telefonnummern eines Personen-/Kontakteintrags

Personen = Plural für mehr als eine Person/einen Kontakt.

value = der Wert eines Elements in einem Personen-/Kontakteintrag - in diesem Fall die Telefonnummer

Im Set-Befehl wird zuerst der Code zwischen den Klammern ( ) ausgeführt.

Das heißt, der Verweis auf das Label der Telefonnummer im gesamten Adressbuch, das mit theNumber beginnt, wird in einer Liste gesammelt.

Dann weist der umgebende Code jede Referenz an, zu test zu wechseln.

Danke für Ihre Antwort. Nur zur Verdeutlichung: 1) Was ist der Unterschied zwischen den 9ern und den 0ern? Sind es Platzhalter? 2) Meinen Sie mit "Label von Telefonen von Personen, deren Wert theNumber enthält" das alte Label wie "mobile"? Danke noch einmal.
Das Drehbuch sagt im Grunde. Ändern Sie die 'Labels' der Telefonnummern Ihrer Kontakte, die die Nummer enthalten, auf "Test". Dies bedeutet, dass bei Ausführung, wenn die Telefonnummer einer Person (Personen) die Anforderungen erfüllt, das Etikett für übereinstimmende Nummern geändert wird. Auf diese Weise ersparen Sie sich das Iterieren über jede Nummer, Person und Bezeichnung. Vor allem, wenn es sich um mehr als eine Nummer pro Kontakt handelt. Der Text "079999 0099999" ist nur eine Nummer, von der ich weiß, dass sie nicht in meinem Adressbuch ist, abgesehen von den beiden, die ich zum Testen verwendet habe. Ich wollte nicht, dass sich alle meine reellen Zahlen ändern.
Ich habe die Antwort aktualisiert, damit das Skript nach Telefonnummern sucht, die mit ... beginnen.