I learned a few days ago (see http://xrl.us/bcuzs) that a drag command with a file type of "vcf" will work on cards dragged out of the Address Book as well as vcf files dragged from the Finder. (A temporary vcf file is made as you drag the card.) I thought it would be nice to have a formatted name and address appear in the TM window instead of the default vCard-formatted info. I had an AppleScript I'd written a while ago that I adapted for this purpose and called it from the drag command using 'osascript'.
The drag command works, but it takes 20-30 seconds to run when operating on a card dragged from the Address Book. This isn't because the AppleScript itself is slow--it runs almost instantly when operating on a vCard file dragged from the Finder.
In the interests of space, here's a simpler AppleScript that exhibits the same difference in runtime:
on run argv tell application "Address Book" set theCard to (person id (item 1 of argv)) set out to name of theCard end tell return out end run
I've called it "abname.scpt" and saved it in my ~/bin directory. (I've also saved it as an application and as text. The results are the same.)
Here's the drag command:
if [[ $TM_MODIFIER_FLAGS = "OPTION" ]]; then uid=`cat "$TM_DROPPED_FILE" |\ awk -F: '/^X-ABUID/\ {printf "%s:ABPerson", substr($2,1,length($2)-1)}'` osascript $HOME/bin/abname.scpt "$uid" else cat "$TM_DROPPED_FILE" fi
This is set up so that when I hold the Option key down as I drag, the name of the card is inserted in the TM window. If I *don't* hold the Option key down, the usual vCard data is inserted. The behavior on my main computer--an Intel iMac running OS X 10.4.11 with TM 1.5.7 (1436)--is like this:
Dragging from Option key Time to run ---------------------------------------------------- file in Finder not pressed instant file in Finder pressed instant card from AB not pressed instant card from AB pressed 20+ seconds
I'd like to know why there's such a difference and what I can do, if anything, to speed things up.
-- Dr. Drang