Скрипт для создания контактов iPhone

8

Кто-нибудь знает способ создания списка контактов с определенным количеством контактов? Они могут быть фиктивными, но мне просто нужно создать адресную книгу с> 2000 записями. Я имею в виду сценарий Automator, но я не уверен, как это сделать.

Я прошу прощения, если это не в том месте. Рассматривал SU или SE, но решил, что я начну здесь.

Томас
источник

Ответы:

11

Applescript может массово создавать записи адресной книги OS X, которые затем можно импортировать на iPhone. Я сделал для вас основной:

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

Откройте редактор AppleScript (в вашей Applications/Utilities/папке) и вставьте его в новый скрипт. Как это, он сделает вас 5 пронумерованных контактов, например, так: пример контактов

Вы можете изменить число в set numberOfEntries to "5" as integerстроке на любое необходимое вам количество и изменить данные, если хотите. Если вам нужны другие поля (например, номера телефонов), спросите, и я могу показать вам, как.

Улучшенная версия

Я пошел немного за борт и сделал версию, которая придумывает более приятные имена. Я взял 20 самых популярных мужских и женских имен, 40 самых популярных фамилий и добавил средний инициал, так что вы получите довольно низкий шанс дублирования (чуть меньше 5% в наборе 2000, по моей математике) без тупой вид пронумерованных контактов.

Он также добавляет все контакты в группу («Тестовая группа»), так что вы можете легко выбрать все фиктивные, если вы добавляете в существующую адресную книгу и хотите очистить ее позже.

Изменить: я также изменил его, чтобы запросить, сколько элементов для создания, поэтому нет необходимости редактировать код.

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

Вот что он генерирует: фиктивные контакты 2

robmathers
источник
1
Выглядит идеально! Спасибо! Я проверю это и дам вам знать, если мне нужно что-нибудь еще!
Томас
Человек, я хотел бы +1000 это за дополнительные усилия. Еще раз спасибо!!!
Томас
Пожалуйста, рад, что это было полезно. Иногда забавно просто составить небольшой сценарий, чтобы решить одну проблему.
Робматерс
1
Я изменил «улучшенную» версию, добавив подсказку о количестве создаваемых контактов, вместо того, чтобы требовать редактирования сценария.
Робматерс
4

Я использовал код Роба в более короткой форме для создания службы Automator, которая позволяет вам щелкнуть правой кнопкой мыши по электронной почте и создать контакт:

введите описание изображения здесь

Большое спасибо, Роб - ты сэкономил мне часы и часы работы :-)

Тим
источник