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 empezaría aquí.

    
pregunta Thomas 22.08.2012 - 17:53

2 respuestas

11

Un Applescript puede crear entradas de la libreta de direcciones OS X de forma masiva, que luego puede importar a su iPhone. Hice una básica 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 AppleScript Editor (en su carpeta Applications/Utilities/ ) y péguelo en un nuevo script. Tal como está, te hará 5 contactos numerados así:

PuedecambiarelnúmeroenlalíneasetnumberOfEntriesto"5" as integer 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 tiene mejores nombres. Tomé los 20 nombres masculinos y femeninos más populares, 40 apellidos más populares, y agregué una inicial del segundo nombre, por lo que tengo una probabilidad bastante baja de duplicados (un poco menos del 5% en un conjunto de 2000, según mis cálculos) sin el Goofy buscando contactos numerados.

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

Editar: También lo cambié para preguntar 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:

    
respondido por el robmathers 22.08.2012 - 18:48
4

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

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

    
respondido por el Tim 30.04.2014 - 13:46

Lea otras preguntas en las etiquetas