> Как проверить, есть ли у человека аватар?
Вам не нужен обработчик ошибок. Просто используйте image of [somebody] is missing value
, где [somebody]
- это спецификатор адресной книги.
tell application "Address Book"
image of some person is missing value
end tell
Использование:
tell application "Address Book"
set somebody to some person
if image of somebody is missing value then
display dialog name of person & " doesn't have an image."
else
display dialog name of person & " has an image."
end if
end tell
> Как вы его отключили?
Чтобы удалить изображение человека, установите для него missing value
.
> Как загрузить аватар из файла?
Чтобы загрузить изображение из файла, прочитайте его как данные TIFF:
tell application "System Events"
set imgfile to file "AENewman.jpg" of folder "friends" of pictures folder
end tell
set imgfd to open for access imgfile
set img to read imgfd as "TIFF"
tell application "Address Book"
set myFriend to item 1 of ¬
(people whose first name is "Alfred" and last name is "Newman")
set (image of myFriend) to img
end tell
close access imgfd
> Из Интернета, Facebook, gravatar?
Вы можете использовать сценарии доступа к URL (в / System / Library / ScriptingAdditions / URL Access Scripting.app, если вы хотите просмотреть словарь сценариев ), чтобы загрузить изображение в файл, а затем загрузить его как указано выше.
on setABImage for somebody from |url|
tell application "System Events" to set tempFile to ¬
make new file at end of temporary items folder of user domain
set tempPath to path of tempFile
tell application "URL Access Scripting" to download |url| ¬
to tempPath replacing yes
set imgfd to open for access tempFile
tell application "Address Book" to set (image of somebody) ¬
to (read imgfd as "TIFF")
close access imgfd
tell application "System Events" to delete tempFile
end setABImageURL
> Какие типы изображений может читать AppleScript?
События AppleScript Image могут считывать форматы PICT, Photoshop, BMP, QuickTime Image, GIF, JPEG, MacPaint, JPEG2, SGI, PSD, TGA, Text, PDF, PNG и TIFF. Я ожидаю, что команда read
поддерживает то же самое. Обратите внимание, что типы изображений в команде read
указаны как OSTypes . Адресная книга поддерживает только TIFF.
> Можно ли скопировать существующий аватар в буфер обмена с помощью AppleScript?
Вы можете установить в буфере обмена практически все, используя set the clipboard to
, хотя вам может потребоваться условие as
, чтобы установить содержимое буфера обмена вместо ссылки.
tell application "Address Book" to set the clipboard to ¬
the image of item 1 of (person whose name is "Alfred E Newman") as data