Script para criar contatos do iPhone

8

Alguém sabe como criar uma lista de contatos com uma quantidade definida de contatos? Eles podem ser entradas falsas, mas eu só preciso criar um catálogo de endereços com> 2000 entradas. Um script do Automator é o que tenho em mente, mas não tenho certeza de como fazer isso.

Peço desculpas se este está no lugar errado. Estava considerando SU ou SE, mas imaginou que começaria aqui.

Thomas
fonte

Respostas:

11

Um Applescript pode criar em massa as entradas do catálogo de endereços do OS X, que você pode importar para o seu iPhone. Eu inventei um básico para você:

-- 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 o AppleScript Editor (na sua Applications/Utilities/pasta) e cole-o em um novo script. Como é, ele fará 5 contatos numerados da seguinte forma: contatos de exemplo

Você pode alterar o número da set numberOfEntries to "5" as integerlinha para o número necessário e alterar os dados, se desejar. Se você precisar de outros campos (como números de telefone), pergunte e eu posso lhe mostrar como.

Versão melhorada

Fui um pouco exagerado e criei uma versão com nomes melhores. Peguei os 20 nomes masculinos e femininos mais populares, os 40 sobrenomes mais populares e adicionei uma inicial do meio, para que você tenha uma chance muito baixa de duplicatas (um pouco menos de 5% em um conjunto de 2000, pelas minhas contas) sem o contatos numerados de aparência pateta.

Ele também adiciona todos os contatos a um grupo ("Grupo de teste"), para que você possa escolher todos os manequins facilmente se estiver adicionando a um bloco de endereços existente e quiser limpá-lo mais tarde.

Editar: eu também mudei para solicitar quantos itens criar, portanto, não é necessário editar o 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

Aqui está o que ele gera: contatos fictícios 2

robmathers
fonte
11
Parece perfeito! Obrigado! Vou testá-lo e informá-lo se precisar de mais alguma coisa!
Thomas
Cara, eu gostaria de poder marcar isso com +1000 para o esforço extra. Obrigado novamente!!!
Thomas
De nada, feliz por ter sido útil. Às vezes, é divertido montar um pequeno script para resolver um problema.
robmathers
11
Alterei a versão "aprimorada" para incluir um prompt para o número de contatos a serem gerados, em vez de exigir que o script seja editado.
robmathers
4

Usei o código de Rob de forma mais curta para criar um Serviço de Automator que permite clicar com o botão direito do mouse em um email e criar um contato:

insira a descrição da imagem aqui

Muito obrigado Rob - você me salvou horas e horas de trabalho :-)

Tim
fonte