#!/usr/bin/perl -w # # Use Festival to speak up and tell me to take medications # # TODO made the # of followup reminders configurable, eg # do it # have you? # have you? # have you? # for some people might be better. Also allow $sleeptime to be # randomized by up to plus/minus $deviation seconds. # # Last updated by rb on Sun Nov 23 00:08:28 EST 2003 # use strict; use Festival::Client; use vars qw/$sleeptime $VERSION $DEBUG $occasion @usernames @replies/; $sleeptime = 10 * 60; # 10 minutes, in seconds. #$DEBUG = 1; $DEBUG = 0; $VERSION = "0.3"; @usernames = ( "Hey you", "Ms Buchanan", "Ricky Buchanan", "Ricky", "Master", "Boss", "Soldier", "Captain", "Kid", ); # # Main # # process cmdline argument $occasion = join(" ", @ARGV); $DEBUG && warn "Occasion found: '$occasion'\n"; if (!defined($occasion)) { warn "Incorrect arguments found. Expected:\n"; warn " speak_meds \n"; warn "where describes why, eg 'after dinner'.\n"; exit 1; } # # Initial "do it" reminder. # my $line = ""; @replies = ( "It\'s time to take your medications for OCCASION.", "It\'s time to take your OCCASION medications.", "Please take your medications for OCCASION.", "Please take your medications for OCCASION now.", "Please take your OCCASION medications.", "Please take your OCCASION medications now.", "Take your medications for OCCASION.", "Take your medications for OCCASION now.", "Take your OCCASION medications.", "Take your OCCASION medications now.", "It\'s time to take your meds for OCCASION.", "It\'s time to take your OCCASION meds.", "Please take your meds for OCCASION.", "Please take your meds for OCCASION now.", "Please take your OCCASION meds.", "Please take your OCCASION meds now.", "Take your meds for OCCASION.", "Take your meds for OCCASION now.", "Take your OCCASION meds.", "Take your OCCASION meds now.", "It\'s time to take your pills for OCCASION.", "It\'s time to take your OCCASION pills.", "Please take your pills for OCCASION.", "Please take your pills for OCCASION now.", "Please take your OCCASION pills.", "Please take your OCCASION pills now.", "Take your pills for OCCASION.", "Take your pills for OCCASION now.", "Take your OCCASION pills.", "Take your OCCASION pills now.", ); $line .= $usernames[rand($#usernames)] . ", "if rand > 0.5; $line .= $replies[rand($#replies)]; $line =~ s/OCCASION/$occasion/g; $DEBUG && warn "Line generated: '$line'\n"; # Say it my $Festival = Festival::Client->new("localhost") or die "Can't connect to Festival server."; $Festival->say($line); # # Sleep for a while # $sleeptime = 5 if $DEBUG; sleep $sleeptime; # # Final "have you done it?" reminder # $line = ""; @replies = ( "It\'s long past time to take your medications for OCCASION?", "It\'s long past time to take your OCCASION medications?", "Did you take your medications for OCCASION?", "Did you take your medications for OCCASION yet?", "Did you take your OCCASION medications?", "Did you take your OCCASION medications yet?", "Have you taken your medications for OCCASION?", "Have you taken your medications for OCCASION yet?", "Have you taken your OCCASION medications?", "Have you taken your OCCASION medications yet?", "It\'s long past time to take your meds for OCCASION?", "It\'s long past time to take your OCCASION meds?", "Did you take your meds for OCCASION?", "Did you take your meds for OCCASION yet?", "Did you take your OCCASION meds?", "Did you take your OCCASION meds yet?", "Have you taken your meds for OCCASION?", "Have you taken your meds for OCCASION yet?", "Have you taken your OCCASION meds?", "Have you taken your OCCASION meds yet?", "It\'s long past time to take your pills for OCCASION?", "It\'s long past time to take your OCCASION pills?", "Did you take your pills for OCCASION?", "Did you take your pills for OCCASION yet?", "Did you take your OCCASION pills?", "Did you take your OCCASION pills yet?", "Have you taken your pills for OCCASION?", "Have you taken your pills for OCCASION yet?", "Have you taken your OCCASION pills?", "Have you taken your OCCASION pills yet?", ); $line .= $usernames[rand($#usernames)] . ", "if rand > 0.5; $line .= $replies[rand($#replies)]; $line =~ s/OCCASION/$occasion/g; $DEBUG && warn "Line generated: '$line'\n"; # Say it $Festival->say($line); exit 0; # # End. #