Hello, My script wakes me up at the time prescribed by me by playing my selected tune. All works fine when tested within ScriptEditor, also when testing it by triggering from the scripts menu icon on menu bar. In fact it used to work as intended. Since writing the script I took into account that computer herself needs to leave Sleep Mode before activating the script I included the "do shell script" command (seen on the screenshot attached). System wake up time is set at 30 sec countdown to alarm trigger time to give the script a room to resume. A strange thing is that tomorrow it was the second time that while computer woke flawlessly the part that activates QuickTime Player to play a selected file failed. Console was of no use either to at least drop a hint to where to look up for a cause of such behavior. The only thing that may (?) bear some relation is that I switch off my router for a night, so the very first thing around the wake up time Console spits on me are the references to applepushserviced about some stream error (which I guess is nothing to be worried of as the result of the WiFi being disconnected; or is it?). Here's my script. Could please tell me, what's wrong?
The script is as following: ========================================== if wakeup_tune is missing value then display dialog "Select an alarm tune" end if repeat set wakeup time to display dialog "Enter wake up time" & return & return & "Formats accepted as below" & return return & "mmicidtyy hours:minutes' & return & "hours:minutes AM/PM (if current day)" & return & "June 25 hours:minutes AM/PM (if current year)" default answer wakeup_date buttons "{Cancel", "Continue"} default button "Continue" set requested_date to text returned of wakeup_time try set wakeupDate to date requested_date exit repeat on error display dialog "Invalid date format. Enter date as set up in your System Preferences" try on error number -128 return end try end try end repeat repeat set wakeup_tune to choose file with prompt "SELECT AUDIO FILE FOR WAKE UP TUNE" of type {"public.audio"} default location alias "Macintosh HD:Users:user_name:Music" set wakeup_tune to wakeup_tune as text tell application 'Finder" to set song_name to name of file wakeup_tune display dialog "You selected" & space & quote & song_name & quote & " for alarm." buttons ("Select another", "OK") default button "OK" if button returned of result is "OK" then exit repeat end repeat set message_dialog to display dialog "You will be woken up at' & space & wakeupDate & return & "You will be woken up with" & space & quote & song_name & quote & "." buttons ("Cancel", "OK") default button "OK' If button returned of message_dialog is "Cancel" then return
#date formatting for the shell command that overrides Sleep Mode for use in localized systems with non-US date formatting. If the US date formatting is your native you probably won't need assembling Unix_long_date variable as in this script.
set locale_Date to date requested_date set short_date to short date string of result set time string to time string of locale_Date set Unix_day to text 1 thru 2 of short_date set Unix_month to text 4 thru 5 of short_date set Unix_year to text 7 thru 8 of short_date set Unix_short_Date to Unix_month & "/" & Unix_day & "/" & Unix_year set localeDateAdjusted to locale_Date - 0,5 * minutes set timeStringAdjusted to time string of localeDateAdjusted set Unix_long_date to Unix_short_date & space & (timeStringAdjusted as text) do shell script "sudo pmset schedule wake" & quote & Unix_Iong_date & quote password my_password with administrator privileges repeat until (current date) ≥ wakeupDate delay 10 end repeat tell application id "com.apple.QuickTimePlayerX" activate open file wakeup_tune tell document named song_name set track_time to (get duration) play end tell delay track_time quit end tell set wakeup_tune to missing value
===========================================================
Sincerely Yours,
ILYA SHEBALIN
|