Maybe this is overkill, but I thought I would post this. Maybe someone might find this useful. Since I am currently using the ACPI wakeup feature and don't have have my box on all the time, I could not run mythfilldatabase at the time suggested by the zap2it server. I know that you can manually set a specific time to run, but I thought it would be nice to have my box figure out when it needed to wake up to run mythfilldatabase at the suggested time. I created a script to run mythfilldatabase and then set a daily wakeup period in mythwelcome to turn on around the suggested time. I now just point to this script rather than mythfilldatabase (you set that on one of the "General" settings pages). I just completed one cycle through the whole timeline and it seems to be working. The part I have not tested completely is the code that adjusts the time so that the period does not cross midnight. Feel free to offer any suggestions or point out any flaws I overlooked.
Code:
#!/bin/bash
mythfilldatabase --quiet
window=5
fill_str="MythFillSuggestedRunTime"
start_str="DailyWakeupStartPeriod1"
end_str="DailyWakeupEndPeriod1"
mysql_cmd="mysql -u mythtv -pmythtv mythconverg"
get_settab="SELECT value,data FROM settings"
dbfilltime=$($mysql_cmd -e"$get_settab" | /bin/grep $fill_str | /bin/sed -e"s/^$fill_str\t//" -e"s/T/ /" );
runtime=$(/bin/date -d "$dbfilltime" +%s);
# This stuff adjusts the suggested time because Mythwelcome currently
# does not accept wake up periods that cross midnight
suggesttime=$(/bin/date -d "$dbfilltime" +%H%M);
if [ $suggesttime -ge $[2360-$window] ]; then
runtime=$[runtime-$window*60]
newtime=$(/bin/date -d "1970-01-01 UTC $runtime sec" +%FT%T);
set_fill="UPDATE settings SET data='$newtime' WHERE value='$fill_str'"
$mysql_cmd -e"$set_fill"
elif [ $suggesttime -le $window ]; then
runtime=$[runtime+$window*60]
newtime=$(/bin/date -d "1970-01-01 UTC $runtime sec" +%FT%T);
set_fill="UPDATE settings SET data='$newtime' WHERE value='$fill_str'"
$mysql_cmd -e"$set_fill"
fi
start1=$(/bin/date -d "1970-01-01 UTC $[runtime-$window*60] sec" +%H:%M);
stop1=$(/bin/date -d "1970-01-01 UTC $[runtime+$window*60] sec" +%H:%M);
set_start="UPDATE settings SET data='$start1' WHERE value='$start_str'"
set_end="UPDATE settings SET data='$stop1' WHERE value='$end_str'"
$mysql_cmd -e"$set_start"
$mysql_cmd -e"$set_end"
BTW, this only works if you enable the "Auto-Start Front End" in mythwelcome and you disable the "Block Shutdown Before Client Connects" in mythtv-setup (General options).