Script para crear contactos de iPhone

8

¿Alguien sabe de una manera de crear una lista de contactos con una cantidad definida de contactos? Pueden ser entradas ficticias, pero solo necesito crear una libreta de direcciones con> 2000 entradas. Lo que tengo en mente es un script de Automator, pero no estoy seguro de cómo hacerlo.

Pido disculpas si esto está en el lugar equivocado. Estaba considerando SU o SE, pero pensé que comenzaría aquí.

Thomas
fuente

Respuestas:

11

Un Applescript puede crear en masa entradas de la libreta de direcciones de OS X, que luego puede importar a su iPhone. Creé uno básico para ti:

-- 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

Abra el Editor AppleScript (en su Applications/Utilities/carpeta) y péguelo en un nuevo script. Como es, te hará 5 contactos numerados así: contactos de ejemplo

Puede cambiar el número en la set numberOfEntries to "5" as integerlínea a la cantidad que necesite y cambiar los datos si lo desea. Si necesita otros campos (como números de teléfono), pregunte y puedo mostrarle cómo.

Versión mejorada

Fui un poco por la borda e hice una versión que aparece con mejores nombres. Tomé los 20 nombres masculinos y femeninos más populares, 40 apellidos más populares, y agregué una inicial del segundo nombre, para que tenga una probabilidad bastante baja de duplicados (un poco menos del 5% en un conjunto de 2000, según mis cálculos) sin el tontos buscando contactos numerados.

También agrega todos los contactos a un grupo ("Grupo de prueba") para que pueda elegir todos los ficticios fácilmente si está agregando a una libreta de direcciones existente y desea limpiarla más tarde.

Editar: también lo cambié para indicar cuántos elementos crear, por lo que no es necesario editar el código.

-- 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

Esto es lo que genera: contactos ficticios 2

ladrones
fuente
1
Se ve perfecto! ¡Gracias! ¡Lo probaré y te haré saber si necesito algo más!
Thomas
Hombre, desearía poder hacer +1000 por el esfuerzo extra. ¡¡¡Gracias de nuevo!!!
Thomas
De nada, me alegro de que haya sido útil. A veces es divertido armar un pequeño guión para resolver un problema.
Robmathers
1
Cambié la versión "mejorada" para incluir un mensaje para la cantidad de contactos que se generarán, en lugar de requerir que se edite el script.
Robmathers
4

He usado el código de Rob en forma más corta para crear un Servicio Automator que le permite hacer clic derecho en un correo electrónico y crear un contacto:

ingrese la descripción de la imagen aquí

Muchas gracias Rob, me has ahorrado horas y horas de trabajo :-)

Tim
fuente