aww, man, ya beat me to it! And here I was having fun making a user friendly script! :-)
Code:
#!/tvbin/tivosh
source $tcl_library/tv/DbEnum.tcl
if {$argc == 0} {
puts "Usage: clearRec.tcl <daysAgo>"
puts " Cleans out recording history older than <daysAgo>"
exit -1
}
set now [clock seconds]
set ago [lindex $argv 0]
set deleteBefore [expr $now - $ago*86400]
set nowDate [clock format $now -format "%m/%d %I:%M%p"]
set agoDate [clock format $deleteBefore -format "%m/%d %I:%M%p"]
puts "Current TiVo Time: $nowDate"
puts "Deleting records older than $agoDate"
set db [dbopen]
ForeachMfsFile fsid name type "/Recording/History" "" {
RetryTransaction {
set recobj [db $db openid $fsid]
set state [dbobj $recobj get State]
set showobj [dbobj $recobj get Showing]
set date [dbobj $showobj get Date]
set time [dbobj $showobj get Time]
set time [expr $date*86400 + $time]
if {$time < $deleteBefore &&
$state == $RecordingState::Cancelled} {
## could also delete those that are Complete or Deleted?
set progobj [dbobj $showobj get Program]
set title [dbobj $progobj get Title]
set date [clock format $time -format "%m/%d %I:%M%p"]
puts "$state: $date: $title"
dbobj $recobj markasrubbish
}
}
}
dbclose $db
By the way, the command is markasrubbish lower cased... My tivo didn't like MarkAsRubbish. Who knows.
Also, I used the time off of the showing object. Not real sure what the difference in time would be between that and the recording itself (except maybe for padding...)
Philips DSR7000 - ~200 hours, killhdinitrd'd 6.2a w/ NutKase's superpatch_67all