By PVG viagra

A financial Safety Net Payday loans emergency when

Tag Archive for applescript

Adding Items to the Grocery List

So last week I mentioned my shopping list spreadsheet. 

However, there’s one flaw. My Mac isn’t in the kitchen, and adding things to the spreadsheet via Numbers on my phone is… awkward at best. 

But I can send a text with my phone. And I have Messages running on my Mac. And I read this. And it all clicked. 

So now I text “gr milk” and milk gets added to my grocery list, it gets sorted by aisle and saved to iCloud. And it only works if I do it from my phone. Don’t need anyone adding things to my list. 

While I was at it, I added commands to quit Chrome and to fire up iTunes. 

There’s one more thing I want to do to this – I want to make a small script that calls this one, instead of having Messages call it directly. the reason is that when you edit the script, you need to re-add it to Messages and honestly, it was becoming a bit of a pain during debugging. 

Here’s my script:

on nextEmptyCellInColumn(sheetName, tableName, colNumber, compValue)
– Copied from http://applescript.bratis-lover.net/library/iwork-numbers/#nextEmptyCellInColumn
– Finds next empty row in the spreadsheet
local sheetName, tableName, colNumber, res, i, len
try
tell application “Numbers”
tell document “Groceries”
tell sheet sheetName
tell table tableName
set len to row count
set res to 0
repeat with i from 1 to len
if (value of cell colNumber of row i) = compValue then
set res to i
exit repeat
end if
end repeat
if res = 0 then
error “No empty row in table ” & tableName & “!” number 111
end if
end tell
end tell
end tell
end tell
return res
on error eMsg number eNum
error “Can’t nextEmptyCellInColumn: ” & eMsg number eNum
end try
end nextEmptyCellInColumn

using terms from application “Messages”
on message receivedtheMessagefromtheBuddyfortheChat
set theName to full name of theBuddy
if theName contains “Neil Kelly” then
if theMessage starts with “COMMANDS:” then
– This is here to prevent the reply for commands from triggering all the commands
set a to 1
else
if theMessage contains “itunes” then
tell application “iTunes”
activate
end tell
end if
if theMessage contains “chrome” then
tell application “Google Chrome”
quit
end tell
end if

if theMessage starts with “gr ” then
set numCell to nextEmptyCellInColumn(1, 1, 1, 0)
set groceryItem to text 4 thru (length of theMessage) of theMessage
tell application “Numbers”
tell document “Groceries”
tell sheet 1
tell table 1
set value of cell 1 of row numCell to groceryItem
sortbycolumn 2 directionascending

end tell
end tell
end tell

end tell
end if
if theMessage contains “commands” or theMessage contains “help” then
– reply with list of commands
– this doesn’t autogenerate
– so if you add a command you should document it here too
– backslash-n adds a newline
send “COMMANDS:
gr to add to grocery list
chrome to quit chrome
itunes to start itunes” to theChat

end if
end if

end if

end message received

end using terms from

Using Automator to Get At Things Applescript Won’t Cooperate With

One of the things that drew me to the Mac was Applescript – the idea of a scripting language that would work with most of the programs in the OS was… well, pretty freaking cool.

However, “most of the programs” eventually means “not the program I was using.” Then I came across this article – by using the Automator “Watch Me Do” recording function and a little bit of trickery, you can get the Applescript code to do whatever you need.

Random Useful Mac OS X User Tips: “I lamented this in one of my posts about Leopard, but I noted that there didn’t seem to be a way to directly access the AppleScript code from the Watch Me Do feature — Automator only creates run-only plugins or scripts. This is annoying if you want to modify the UI script later to do something slightly different. In this situation, you’d have to redo the whole set of actions all over again.”

Way cool.

More stuff on Mac

I had an a-ha moment today. I’ve been dabbling a little in Applescript – I had a need for a timestamp, so I wrote a small script that would create one and dump it into the clipboard. I set it to trigger off CMD-1 via Quicksilver, and now, if I do CMD-1, CMD-V I get a nice little time and date stamp pasted wherever the cursor is.

Then I started thinking. For work, every week I copy a bunch of files from where I work on them out to a shared folder on the network, then send an email to management saying “hey, they’re updated.” I then attach them to an email to send to one manager who doesn’t have access to the networked folder. I realized today that the entire process could be automated via Automator, linked to a Quicksilver trigger and *poof* the whole thing would be done.

This is the kind of stuff I was looking forward to doing on the Mac that I couldn’t do as easily on the Windows side.