summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/linhes-scripts/removecommercials.sh
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core-testing/linhes-scripts/removecommercials.sh')
-rwxr-xr-xabs/core-testing/linhes-scripts/removecommercials.sh233
1 files changed, 0 insertions, 233 deletions
diff --git a/abs/core-testing/linhes-scripts/removecommercials.sh b/abs/core-testing/linhes-scripts/removecommercials.sh
deleted file mode 100755
index 0497dd5..0000000
--- a/abs/core-testing/linhes-scripts/removecommercials.sh
+++ /dev/null
@@ -1,233 +0,0 @@
-#!/bin/sh
-# remove commercials from recordings using the user generated cutlist or
-# optionally using the mythcommflag generated cutlist.
-# version 0.3 9/1/2010
-
-# usage:
-# first parameter must be %DIR% of the recording
-# second parameter must be %FILE% of the recording
-# third parameter must be %CHANID%
-# fourth parameter must be %STARTTIME%
-# fifth parameter must be %JOBID% for the User Job status to be updated in MythTV
-# in the mythtv setup screen invoke this script like this:
-# MYTHTV User Job Command:
-# /usr/LH/bin/removecommercials.sh "%DIR%" "%FILE%" "%CHANID%" "%STARTTIME%" "%JOBID%"
-
-#-------OPTIONS----------------
-# If no cutlist is found USE_MYTHCOMMFLAG_CUTLIST=YES will use mythcommflag
-# to generate a cutlist.
-# WARNING: Using this option could result in part of the recording being cut if
-# mythcommflag incorrectly flagged the commercial.
-# The USE_MYTHCOMMFLAG_CUTLIST option is saved in ~/.removecommercials.cfg and will
-# not be overwritten by updates to this script. The ~/.removecommercials.cfg
-# will be created by this script if it doesn't exist.
-# To enable set USE_MYTHCOMMFLAG_CUTLIST=YES in ~/.removecommercials.cfg
-
-[[ ! -f ~/.removecommercials.cfg ]] && printf "# If no cutlist is found USE_MYTHCOMMFLAG_CUTLIST=YES will use mythcommflag\n# to generate a cutlist.\n# WARNING: Using this option could result in part of the recording being cut if\n# mythcommflag incorrectly flagged the commercial.\nUSE_MYTHCOMMFLAG_CUTLIST=NO" > ~/.removecommercials.cfg
-. ~/.removecommercials.cfg
-
-# Auguments passed from command line
-VIDEODIR=$1
-FILENAME=$2
-CHANID=$3
-STARTTIME=$4
-JOBID=$5
-
-# database settings
-BACKEND_HOSTNAME=${BACKEND_HOSTNAME:-"localhost"}
-DBUSERNAME=${DBUSERNAME:-"mythtv"}
-DBPASSWORD=${DBPASSWORD:-"mythtv"}
-SQLCMD="mysql -u $DBUSERNAME --password=$DBPASSWORD -h $BACKEND_HOSTNAME mythconverg -e"
-
-LOG="/dev/null"
-#LOG="/var/log/mythtv/removecommercials.log"
-
-#------FUNCTIONS---------------
-update_comment()
-# Arg_1 = COMMENT
-{
-if [ $NO_JOBID = 0 ]; then
- `$SQLCMD "update jobqueue set comment=\"$1\" where id=\"$JOBID\";"`
-fi
-}
-
-update_status()
-# Arg_1 = status code
-{
-if [ $NO_JOBID = 0 ]; then
- `$SQLCMD "update jobqueue set status=\"$1\" where id=\"$JOBID\";"`
-fi
-}
-
-check_myth_jobcmds()
-# check the myth database for stop pause or resume commands
-{
-if [ $NO_JOBID = 0 ]; then
- CURRENT_CMD=`$SQLCMD "select cmds from jobqueue where id=\"$JOBID\";" | sed '/[0-9]/!d'`
- case "$CURRENT_CMD" in
- # JOB_RUN
- 0) ;;
- # JOB_PAUSE
- 1) update_status 6
- kill -s STOP $TPID ;;
- # JOB_RESUME
- 2) update_status 4
- `$SQLCMD "update jobqueue set cmds=\"0\" where id=\"$JOBID\";"`
- kill -s CONT $TPID ;;
- # JOB_STOP
- 4) update_status 5
- `$SQLCMD "update jobqueue set cmds=\"0\" where id=\"$JOBID\";"`
- kill -9 $TPID
- clean_up_files
- echo "Cancelled"
- update_status 320
- exit ;;
- esac
-fi
-}
-
-check_background_progress()
-#check progress in background
-{
-while [ `tail -1 $STATUSFILE | grep -c "Done"` = 0 ]
-do
- sleep 5
- check_myth_jobcmds
- current_status=`tail -1 $STATUSFILE`
- if [ `expr match "$current_status" '.*\complete'` -ne 0 ]; then
- prog_percent=`echo "$current_status" | awk '{print $3}'`
- if [ -n "$prog_percent" ]; then
- echo "Removing Commercials - $prog_percent Completed"
- update_comment "Removing Commercials - $prog_percent Completed"
- fi
- fi
-done
-}
-
-get_pid()
-{
-process_name=""
-i1=1
-while [ "$process_name" != "found" ]; do
- if [ "`ps $TPID | grep mythtranscode | sed 's_.*\(mythtranscode\).*_\1_'`" = "mythtranscode" ]; then
- process_name="found"
- else
- TPID=`expr $TPID + 1`
- fi
- i1=`expr $i1 + 1`
- if [ $i1 -gt 20 ]; then
- break
- fi
-done
-}
-
-clean_up_files()
-# clean up left over files
-{
-unlink $TMPFILE 2> /dev/null
-unlink $TMPFILE.map 2> /dev/null
-unlink $STATUSFILE 2> /dev/null
-unlink $VIDEODIR/$FILENAME.tmp 2> /dev/null
-}
-
-#-------MAIN SCRIPT------------
-# check if %JOBID% is passed from command line
-JOBID=$5
-if [ -z "$JOBID" ]; then
- NO_JOBID=1
-else
- NO_JOBID=0
-fi
-# check if file is a .mpg
-if [ `expr match "$FILENAME" '.*\.mpg'` -ne 0 ]; then
- MPEG="--mpeg2"
-else
- MPEG=""
-fi
-
-# create temp filename so multiple instances won't conflict
-TMPNAME=rmvCOMMS-$$
-TMPFILE=$VIDEODIR/$FILENAME-$$
-STATUSFILE=/myth/tmp/$TMPNAME-status.log
-
-touch $STATUSFILE
-
-update_status 4
-
-check_myth_jobcmds
-
-echo "" >> $LOG
-date >> $LOG
-$VIDEODIR/$FILENAME >> $LOG
-
-# check for cutlist
-MYTHCOMMFRAMES=`mythcommflag --getcutlist -f $VIDEODIR/$FILENAME | grep 'Cutlist:' | cut -d \ -f 2`
-
-if [ $USE_MYTHCOMMFLAG_CUTLIST=YES ] && [ -z "$MYTHCOMMFRAMES" ]; then
- echo "Generating cutlist..." >> $LOG
- update_comment "Generating cutlist..."
- /usr/bin/nice -n19 /usr/bin/mythcommflag --gencutlist -f $VIDEODIR/$FILENAME
- MYTHCOMMFRAMES=`mythcommflag --getcutlist -f $VIDEODIR/$FILENAME | grep 'Cutlist:' | cut -d \ -f 2`
-fi
-
-if [ -n "$MYTHCOMMFRAMES" ]; then
- echo "Removing Commercials..." >> $LOG
- update_comment "Removing Commercials..."
- ( /usr/bin/nice -n19 /usr/bin/mythtranscode -c $CHANID -s $STARTTIME -o $TMPFILE $MPEG --honorcutlist --showprogress > $STATUSFILE 2>&1 ; echo "Done" >> $STATUSFILE ) &
- TPID=$!
- get_pid
- check_background_progress
- ERROR=$?
- if [ $ERROR -ne 0 ]; then
- echo "Transcoding failed for ${FILENAME} with error $ERROR" >> $LOG
- exit $ERROR
- fi
-
- check_myth_jobcmds
- # move temp file to output location
- echo "Moving file..." >> $LOG
- update_comment "Moving file..."
- if [ `$SQLCMD "select data from settings where value='SaveTranscoding';" | sed '/[0-9]/!d'` = 1 ]; then
- echo "DB is set to save transcoding" >> $LOG
- mv $VIDEODIR/$FILENAME $VIDEODIR/$FILENAME.old
- fi
- mv $TMPFILE $VIDEODIR/$FILENAME
-
- # file has changed, rebuild index
- echo "Rebuilding index..." >> $LOG
- update_comment "Rebuilding index..."
- mythcommflag -c $CHANID -s $STARTTIME --rebuild
- ERROR=$?
- if [ $ERROR -ne 0 ]; then
- echo "Rebuilding seek list failed for ${FILENAME} with error $ERROR" >> $LOG
- exit $ERROR
- fi
-
- # remove old cutlist
- echo "Removing old cutlist..." >> $LOG
- update_comment "Removing old cutlist..."
- mythcommflag -c $CHANID -s $STARTTIME --clearcutlist
- ERROR=$?
- if [ $ERROR -eq 0 ]; then
- # Fix the database entry for the file
- echo "Fixing database entry..." >> $LOG
- `$SQLCMD "UPDATE recorded SET cutlist = 0, filesize = $(ls -l $VIDEODIR/$FILENAME | awk '{print $5}') WHERE basename = '$FILENAME';"` > /dev/null
- else
- echo "Clearing cutlist failed for ${FILENAME} with error $ERROR" >> $LOG
- clean_up_files
- update_status 272
- update_comment "Error: Clearing cutlist failed."
- exit $ERROR
- fi
-
- # clear autoskip list
- echo "Clearing autoskip list..." >> $LOG
- `$SQLCMD "DELETE FROM recordedmarkup WHERE CONCAT( chanid, starttime ) IN (SELECT CONCAT( chanid, starttime ) FROM recorded WHERE basename = '$FILENAME');"` > /dev/null
-
- clean_up_files
- echo "Commercials Removed" >> $LOG
- update_status 272
- update_comment "Sucessfully Completed."
-else
- echo "No cutlist found." >> $LOG
-fi