| EverythingDigital | RSS Feed | Flickr Photos | What Is Podcasting? |


« I Need Some Help With Applescript | Main | It's Here »

April 10, 2005

iChatNotifyBT

After some careful troubleshooting I was able to work the bugs out of my iChatNotifyBT script, and I am now ready to fully release it. Again, this script is intended to work with iChat to detect new incoming messages, and send a notification (address book contact) to your bluetooth phone that the instant message has arrived. Many cellular carriers offer AIM forwarding services for mobile devices, however, they often use SMS and therefore cost per message. If your phone has bluetooth, why not take advantage of that functionality?

NOTE: You must first choose "None" in Bluetooth File Exchange preferences, and make sure the destination device is the only bluetooth device added to your favorites in bluetooth system preferences.

SCREENSHOTS: View [Flickr]

DOWNLOAD: iChatNotifyBT | iChatNotifyBT Source


--iChatNotifyBT v.b01

--Created by Alan Joyce
--http://everythingdigital.org

--Requires "None" to be chosen in Bluetooth File Exchange preferences, and the destination device to be the only bluetooth device that is added to favorites.

on notify()
tell application "Address Book"
set addressList to first name of every person
if addressList contains "NEW IM" then
set notifyCard to (get people whose first name is "NEW IM")
set notifyNow to item 1 of notifyCard
else
set addEntry to (make new person)
tell addEntry
set first name to "NEW IM"
end tell
set notifyCard to (get people whose first name is "NEW IM")
set notifyNow to item 1 of notifyCard
end if
end tell

set PathName to path to desktop
tell application "Address Book"
set cardName to "NEW IM"
set myCard to vcard of people where name is "NEW IM"
set vcardinfo to myCard as string
my makeExportFile(PathName, cardName, vcardinfo)
end tell

my sendit()
end notify

on makeExportFile(PathName, cardName, vcardinfo)
try
set target_name to cardName & ".vcf"
set target_file to (PathName as text) & target_name
tell application "Finder" to make new file at PathName ¬
with properties {name:cardName & ".vcf", creator type:"adrb"}
set the open_target_file to ¬
open for access file target_file with write permission
set eof of the open_target_file to 0
write vcardinfo to the open_target_file starting at eof
close access the open_target_file
on error theErrMsg number theErrNumber
return theErrNumber
end try
end makeExportFile


on sendit()
set PathName to path to desktop
set cardName to "NEW IM"
set target_name to cardName & ".vcf"
set vcardpath to (PathName as text) & target_name
tell application "Bluetooth File Exchange"
activate
delay 3
open file vcardpath
end tell

tell application "System Events"
tell application "Bluetooth File Exchange" to activate
delay 3
keystroke (ASCII character of 13)
end tell

end sendit


tell application "iChat"
set windowList to name of every window
set windowNum to number of items in windowList
repeat
delay 1
set windowList to name of every window
set windowNumNow to number of items in windowList
if windowNumNow is greater than windowNum then
my notify()
exit repeat
end if
end repeat
end tell

Posted by Alan Joyce at April 10, 2005 05:11 PM

Trackback Pings

TrackBack URL for this entry:
http://www.everythingdigital.org/cgi-bin/mt-tb.cgi/436

Listed below are links to weblogs that reference iChatNotifyBT:

» iChatNotifyBT from MAKE: Blog
I'm going to use [Read More]

Tracked on April 18, 2005 03:54 AM

Comments

nice work- i'll post a link to this up on make. if you have time, take a photo of it in action and throw it on up in the make group pool...

cheers,
pt

Posted by: pt at April 10, 2005 05:37 PM

Wow, this is awesome. So, the correct usage is to load the script (e.g. double click) to "arm" the notification trigger, right? And then it is supposed to happen exactly once after that? I happen to have the same phone as you (V600) and I did indeed get the notification working. The address book entry is deemed corrupt by the phone, so I can't tell who's IMing, but still it's very handy.

Posted by: Peter at April 23, 2005 10:25 PM

You have the usage right, I decided one-time notification was better, since you can always arm it again, and that way you don't get flooded with notifications if you're away for a while.

The script isn't able to put the name of the person that is IMing yet anyway, so you aren't missing out there.

Thanks for giving it a try and I'm glad you find it useful!

Posted by: Alan Joyce at April 23, 2005 10:31 PM

Post a comment




Remember Me?



(You must preview before you post. This is to prevent spam.)