Script pour créer des contacts iPhone

8

Quelqu'un connaît-il un moyen de créer une liste de contacts avec un nombre défini de contacts? Il peut s'agir d'entrées factices, mais il me suffit de créer un carnet d'adresses avec> 2000 entrées. Je pense à un script Automator, mais je ne sais pas trop comment faire.

Je m'excuse si c'est au mauvais endroit. Envisageait SU ou SE, mais je pensais commencer ici.

Thomas
la source

Réponses:

11

Un Applescript peut créer en masse des entrées de carnet d'adresses OS X, que vous pouvez ensuite importer sur votre iPhone. J'en ai fait un de base pour vous:

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

Ouvrez l' éditeur AppleScript (dans votre Applications/Utilities/dossier) et collez-le dans un nouveau script. En l'état, cela vous fera 5 contacts numérotés comme ceci: exemples de contacts

Vous pouvez changer le nombre dans la set numberOfEntries to "5" as integerligne pour le nombre dont vous avez besoin et modifier les données si vous le souhaitez. Si vous avez besoin d'autres champs (comme des numéros de téléphone), demandez et je peux vous montrer comment.

Version améliorée

Je suis allé un peu trop loin et j'ai fait une version qui propose de plus beaux noms. J'ai pris les 20 noms masculins et féminins les plus populaires, 40 noms de famille les plus populaires et j'ai ajouté une initiale au milieu, de sorte que vous obtenez une chance assez faible de doublons (un peu moins de 5% dans un ensemble de 2000, selon mes calculs) sans le contacts numérotés maladroits.

Il ajoute également tous les contacts à un groupe ("Test Group") afin que vous puissiez en sélectionner facilement tous les factices si vous ajoutez à un carnet d'adresses existant et que vous souhaitez le nettoyer plus tard.

Modifier: je l'ai également modifié pour demander le nombre d'éléments à créer, il n'est donc pas nécessaire de modifier le code.

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

Voici ce qu'il génère: contacts fictifs 2

robmathers
la source
1
Ça a l'air PARFAIT! Merci! Je vais le tester et vous faire savoir si j'ai besoin d'autre chose!
Thomas
Je voudrais pouvoir +1000 ceci pour l'effort supplémentaire. Merci encore!!!
Thomas
Vous êtes les bienvenus, heureux que cela ait été utile. Parfois, c'est amusant de simplement assembler un petit script pour résoudre un problème.
robmathers
1
J'ai changé la version "améliorée" pour inclure une invite pour le nombre de contacts à générer, plutôt que d'exiger la modification du script.
robmathers
4

J'ai utilisé le code de Rob sous une forme plus courte pour créer un service d'automatisation qui vous permet de cliquer avec le bouton droit sur un e-mail et de créer un contact:

entrez la description de l'image ici

Merci beaucoup Rob - tu m'as sauvé des heures et des heures de travail :-)

Tim
la source