#!/usr/bin/perl -w # $Id: setbookmark,v 1.3 2008-06-27 22:14:22 ajlill Exp $ # Set a bookmark at progstart if we recorded with pre-roll # Invoke as a user job like so: # setbookmark --chanid=$CHANID% --starttime="%STARTTIMEISO%" --progstart="%PROGSTARTISO%" use DBI; use Getopt::Long; use Time::Local; my( $starttime, $progstart, $chanid, $database, $host, $user, $pass, $debug ); GetOptions( 'host=s'=>\$host, 'database=s'=>\$database, 'user=s'=>\$user, 'pass=s'=>\$pass, "starttime=s" => \$starttime, "progstart=s" => \$progstart, "chanid=i" => \$chanid, "debug!" => \$debug ); open( DBG, ">/tmp/setbookmark.dbg") if( $debug ); if (!$host) { $host="freevo"; } if (!$database) { $database="mythconverg"; } if (!$user) { $user="mythtv"; } if (!$pass) { $pass="mythtv"; } # TODO: look at the file and get the real fps $fps = 30; my $dbh = DBI->connect("dbi:mysql:database=$database:host=$host","$user","$pass") or die "Cannot connect to database ($!)\n"; print DBG "Found progstart($progstart) for $chanid $starttime\n" if ( $debug ); if( $progstart ne $starttime ) { ($y,$mo,$d,$h,$m,$s) = split( /[-: T]/, $starttime); $st = timelocal($s,$m,$h,$d,$mo-1,$y); ($y,$mo,$d,$h,$m,$s) = split( /[-: T]/, $progstart); $pg = timelocal($s,$m,$h,$d,$mo-1,$y); $frames = ($pg - $st) * $fps; print DBG "Seconds starttime($st) progstart($pg) frames($frames)\n" if ( $debug ); } else { exit; } $sth = $dbh->prepare("insert into recordedmarkup ( chanid, starttime, mark, type ) values ( $chanid, \"$starttime\", $frames, 2 )"); $sth->execute(); $sth = $dbh->prepare("update recorded set bookmark = 1 where chanid = $chanid and starttime = \"$starttime\""); $sth->execute(); exit 0;