Skript zum Erstellen von iPhone-Kontakten

8

Kennt jemand eine Möglichkeit, eine Kontaktliste mit einer definierten Anzahl von Kontakten zu erstellen? Es können Dummy-Einträge sein, aber ich muss nur ein Adressbuch mit> 2000 Einträgen erstellen. Ich habe ein Automator-Skript im Sinn, bin mir aber nicht sicher, wie ich das anstellen soll.

Ich entschuldige mich, wenn dies am falschen Ort ist. Ich habe über SU oder SE nachgedacht, aber ich dachte, ich würde hier anfangen.

Thomas
quelle

Antworten:

11

Mit einem Applescript können OS X-Adressbucheinträge in großen Mengen erstellt werden, die Sie dann auf Ihr iPhone importieren können. Ich habe eine grundlegende für Sie erfunden:

-- Change these to your desired data
set firstName to "Test"
set lastName to "User"
set numberOfEntries to "5" as integer

set counter to "1" as integer
tell application "Address Book"
    repeat numberOfEntries times
        set thePerson to make new person with properties {first name:firstName, last name:lastName & " " & counter}
        make new email at end of emails of thePerson with properties {label:"Work", value:"test" & counter & "@example.com"}
        make new address at end of addresses of thePerson with properties {label:"Home", city:"Fakeville", street:(counter as string) & " Some St."}
        set counter to counter + 1
    end repeat
    save
end tell

Öffnen Sie den AppleScript-Editor (in Ihrem Applications/Utilities/Ordner) und fügen Sie ihn in ein neues Skript ein. So wie es ist, werden Sie 5 nummerierte Kontakte wie folgt machen: Beispiel Kontakte

Sie können die Nummer in der set numberOfEntries to "5" as integerZeile auf beliebig viele ändern und die Daten ändern, wenn Sie dies wünschen. Wenn Sie andere Felder (wie Telefonnummern) benötigen, fragen Sie und ich kann Ihnen zeigen, wie.

Verbesserte Version

Ich bin ein bisschen über Bord gegangen und habe eine Version gemacht, die schönere Namen hat. Ich habe die 20 beliebtesten männlichen und weiblichen Namen, die 40 beliebtesten Nachnamen und eine mittlere Initiale hinzugefügt, sodass Sie ohne die Mathematik eine ziemlich geringe Wahrscheinlichkeit für Duplikate erhalten (etwas weniger als 5% in einem Satz von 2000, nach meiner Berechnung) doof aussehende nummerierte Kontakte.

Außerdem werden alle Kontakte zu einer Gruppe hinzugefügt ("Testgruppe"), sodass Sie alle Dummy-Kontakte einfach auswählen können, wenn Sie sie zu einem vorhandenen Adressbuch hinzufügen und später bereinigen möchten.

Bearbeiten: Ich habe es auch so geändert, dass Sie gefragt werden, wie viele Elemente erstellt werden sollen, sodass der Code nicht bearbeitet werden muss.

-- name lists: 20 most popular (US) male and female first names, 40 most popular last names
set firstNameList to {"Mary", "Patricia", "Linda", "Barbara", "Elizabeth", "Jennifer", "Maria", "Susan", "Margaret", "Dorothy", "Lisa", "Nancy", "Karen", "Betty", "Helen", "Sandra", "Donna", "Carol", "Ruth", "Sharon", "James", "John", "Robert", "Michael", "William", "David", "Richard", "Charles", "Joseph", "Thomas", "Christopher", "Daniel", "Paul", "Mark", "Donald", "George", "Kenneth", "Steven", "Edward", "Brian"}
set lastNameList to {"Smith", "Johnson", "Williams", "Jones", "Brown", "Davis", "Miller", "Wilson", "Moore", "Taylor", "Anderson", "Thomas", "Jackson", "White", "Harris", "Martin", "Thompson", "Garcia", "Martinez", "Robinson", "Clark", "Rodriguez", "Lewis", "Lee", "Walker", "Hall", "Allen", "Young", "Hernandez", "King", "Wright", "Lopez", "Hill", "Scott", "Green", "Adams", "Baker", "Gonzalez", "Nelson", "Carter"}
set initialList to "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
set counter to "1" as integer

-- prompt for how many contacts to create
set dialogText to "Number of contacts to create?"
repeat
    display dialog dialogText default answer ""
    set numberOfEntries to text returned of result
    try
        if numberOfEntries = "" then error
        set numberOfEntries to numberOfEntries as number
        exit repeat
    on error

    end try
end repeat

-- populate the address book
tell application "Address Book"
    set theGroup to make new group with properties {name:"Test Group"}
    repeat numberOfEntries times
        set firstName to some item of firstNameList
        set lastName to some item of lastNameList
        set middleInitial to some item of initialList & "."
        set thePerson to make new person with properties {first name:firstName, middle name:middleInitial, last name:lastName}
        make new email at end of emails of thePerson with properties {label:"Work", value:firstName & middleInitial & lastName & "@example.com"}
        make new address at end of addresses of thePerson with properties {label:"Home", city:"Fakeville", street:(counter as string) & " Some St."}
        add thePerson to theGroup
        set counter to counter + 1
    end repeat
    save
end tell

Folgendes wird generiert: Blindkontakte 2

Robmathers
quelle
1
Sieht perfekt aus! Vielen Dank! Ich werde es testen und dich wissen lassen, wenn ich noch etwas brauche!
Thomas
Mann, ich wünschte, ich könnte +1000 dies für den zusätzlichen Aufwand. Danke noch einmal!!!
Thomas
Gern geschehen, froh, dass es nützlich war. Manchmal macht es Spaß, einfach ein kleines Skript zusammenzustellen, um ein Problem zu lösen.
Robmathers
1
Ich habe die "verbesserte" Version dahingehend geändert, dass eine Eingabeaufforderung für die Anzahl der zu generierenden Kontakte angezeigt wird, anstatt dass das Skript bearbeitet werden muss.
Robmathers
4

Ich habe Robs Code in kürzerer Form verwendet, um einen Automator-Service zu erstellen, mit dem Sie mit der rechten Maustaste auf eine E-Mail klicken und einen Kontakt erstellen können:

Geben Sie hier die Bildbeschreibung ein

Vielen Dank Rob - du hast mir Stunden und Stunden Arbeit erspart :-)

Tim
quelle