Skrypt do tworzenia kontaktów iPhone

8

Czy ktoś zna sposób na utworzenie listy kontaktów z określoną liczbą kontaktów? Mogą to być fikcyjne wpisy, ale muszę tylko utworzyć książkę adresową z> 2000 pozycji. Mam na myśli skrypt Automatora, ale nie jestem pewien, jak sobie z tym poradzić.

Przepraszam, jeśli to jest w niewłaściwym miejscu. Zastanawiałem się nad SU lub SE, ale pomyślałem, że zacznę tutaj.

Tomasz
źródło

Odpowiedzi:

11

Applescript może zbiorczo tworzyć wpisy książki adresowej OS X, które można następnie zaimportować do iPhone'a. Stworzyłem dla ciebie podstawowy:

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

Otwórz AppleScript Editor (w Applications/Utilities/folderze) i wklej to w nowym skrypcie. W tej chwili uzyskasz 5 ponumerowanych kontaktów: przykładowe kontakty

Możesz zmienić liczbę w set numberOfEntries to "5" as integerwierszu na tyle, ile potrzebujesz, i zmienić dane, jeśli chcesz. Jeśli potrzebujesz innych pól (takich jak numery telefonów), zapytaj, a pokażę Ci, jak to zrobić.

Poprawiona wersja

Poszedłem trochę za burtę i stworzyłem wersję, która ma ładniejsze nazwy. Wziąłem 20 najpopularniejszych imion męskich i żeńskich, 40 najpopularniejszych nazwisk i dodałem środkowy inicjał, więc masz dość małą szansę na duplikaty (nieco poniżej 5% w zestawie 2000, według mojej matematyki) bez głupkowato wyglądające numerowane kontakty.

Dodaje również wszystkie kontakty do grupy („Grupa testowa”), dzięki czemu możesz łatwo wybrać wszystkie obojętne, jeśli dodajesz do istniejącej książki adresowej i chcesz ją później wyczyścić.

Edycja: Zmieniłem go również, aby pytać o liczbę elementów do utworzenia, więc nie trzeba edytować kodu.

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

Oto, co generuje: fikcyjne kontakty 2

robmathers
źródło
1
Wygląda IDEALNIE! Dzięki! Przetestuję to i dam ci znać, jeśli będę potrzebować czegoś jeszcze!
Thomas
Człowieku, chciałbym móc +1000 tego dla dodatkowego wysiłku. Dzięki jeszcze raz!!!
Thomas
Nie ma za co, cieszę się, że było to przydatne. Czasami fajnie jest po prostu ułożyć mały skrypt, aby rozwiązać jeden problem.
robmathers,
1
Zmieniłem „ulepszoną” wersję, aby wyświetlała monit o liczbę kontaktów do wygenerowania, zamiast wymagać edytowania skryptu.
robmathers,
4

Użyłem kodu Roba w krótszej formie, aby utworzyć usługę Automator, która umożliwia kliknięcie wiadomości e-mail prawym przyciskiem myszy i utworzenie kontaktu:

wprowadź opis zdjęcia tutaj

Dziękuję bardzo Rob - zaoszczędziłeś mi godziny pracy :-)

Tim
źródło