Recording a Stream with Smalltalk and Applescript
The Citilab folks are getting me copies of the recorded ESUG talks, so I don't really need this solution - but before I knew that was going to happen, I set up two Applescripts and a Smalltalk workspace script to start recording at 3 AM my time (9 AM in Barcelona). The Smalltalk looks like this:
isTime := false. safariScript := '/Users/james/Documents/working_77/openSafari.scpt'. castScript := '/Users/james/Documents/working_77/doRecord.scpt'. test := Timestamp readFrom: '9/14/10 02:58:00' readStream. block := [[isTime] whileFalse: [(Delay forSeconds: 60) wait. time := Timestamp now. time >= test ifTrue: [isTime := true. ExternalProcess cshOne: safariScript. (Delay forSeconds: 5) wait. ExternalProcess cshOne: castScript]]].
And the two AppleScripts:
#! /usr/bin/osascript tell application "Safari" open location "http://eventv.projectescitilab.eu/index.html" end tell #! /usr/bin/osascript activate application "iShowU" delay 2 tell application "System Events" tell process "iShowU" click button "Record" of window "iShowU" end tell end tell
Pretty simple stuff, and it's easy enough to do. If I had to do this sort of thing often enough, I'd likely create a CRON job instead of the Smalltalk workspace, but for ad-hoc things, this works quite nicely.