1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
#!/bin/sh
# Originally written by :
# Viking / vdrportal.de
# cjac AT ich-habe-fertig.com
#
#----------------------------------------------------------------
# Version 1.3
#
# Mike Constabel <vejoun @ vdrportal>
#
# HISTORY:
#
# 2007-03-29: Version 1.3
#
# - fixes for use with epgsearch >= 0.9.21
#
# 2006-09-01: Version 1.2
#
# - fixed setsid calling
#
# 2006-07-17: Version 1.1
#
# - added setsid for calling UPDD
#
# 2006-??-?? update for vdr >= 1.3.44 and epgsearch >= 0.9.13a
#
#----------------------------------------------------------------
#
# Call with one of these parameters
# a. Recording Directory as parameter 1
# b. --recursive "Start_Dir"
# c. --recursive
#
# If called with "--recursive" either "Start_Dir" or "VIDEO_ROOT"
# from below is searched for recordings to put to the done-file
#
#----------------------------------------------------------------
# Should wo only test what is done ?
TEST=yes
# should we add recordings that have a S-ID in info.vdr ?
# That is recordings already recorded with epgsearch-autotimer
# and they are probably already in the done file!
# yes = add recodrings with S-ID
# no = don't add recordings with S-ID
ADD_SID_RECORDINGS=no
# should the script ask for S-ID for each recording ?
# The script shows a list of possible S-ID's at the beginning
ASK_SID=no
# What S-ID should be used if no other selected
DEFAULT_SID=-1
# Use the recording-dir's ctime as recording time?
CTIME_FROM_RECORDING=yes
# adjust the following line to your path to svdrpsend
SVDRPSEND=svdrpsend
# Home of EPGsearch
EPGSEARCH_HOME="/etc/vdr/plugins"
# Video root
VIDEO_ROOT="/video"
# do not edit below this line
#------------------------------------------------------------------------------
EPGSEARCHDONE_FILE="$EPGSEARCH_HOME/epgsearchdone.data"
EPGSEARCH_FILE="$EPGSEARCH_HOME/epgsearch.conf"
PrevTitle=""
function ShowUsableSIDs()
{
printf "\n"
grep -v "^#" $EPGSEARCH_FILE | sort -t':' -k2 | awk -F':' '{ print $1"\t"$2 }'
printf "\n"
}
function AddRecToDone()
{
Rec=$1
if [ -e "$Rec/info.vdr" ]; then
# Get ctime from recordingdir
if [ "$CTIME_FROM_RECORDING" = "yes" ]; then
CTIME="$(echo "$Rec" | sed 's#......\.rec/##;s#.*/##')"
CTIME="$(date +%s -d"${CTIME:0:10} ${CTIME:11:2}:${CTIME:14:2}")"
fi
# Find S-ID in info.vdr
S_IDAlt=`grep -s "^D .*s-id:" $Rec/info.vdr | sed -re 's/^D .*s-id: ([0-9]*).*/\1/'`
S_IDNeu=`grep -s "^@ .*<epgsearch>.*<s-id>.*<\/s-id>.*<\/epgsearch>" $Rec/info.vdr | sed -re 's/^@ .*<epgsearch>.*<s-id>([0-9]*)<\/s-id>.*<\/epgsearch>.*/\1/'`
[ "$S_IDAlt" != "" ] && S_ID="$S_IDAlt"
[ "$S_IDNeu" != "" ] && S_ID="$S_IDNeu"
Title=$(grep "^T " $Rec/info.vdr| cut -f2- -d' '|head -1)
Subtitle=$(grep "^S " $Rec/info.vdr| cut -f2- -d' '|head -1)
if [ "$S_ID" = "" -o "$S_ID" != "" -a "$ADD_SID_RECORDINGS" = "yes" ]; then
[ $(grep "^T " $Rec/info.vdr| wc -l) -gt 1 ] && printf "\n\nERROR: DUAL T Line %s\n\n" "$Rec"
printf "Adding \"%s, %s\".\n" "$Title" "$Subtitle"
if [ "$ASK_SID" = "yes" -a "$S_ID" = "" ]; then
if [ "$Title" != "$PrevTitle" ]; then
printf "Enter S-ID (s=skip, ENTER=$DEFAULT_SID): "
read NEW_SID
if [ "$NEW_SID" != "s" ]; then
[ -z "$NEW_SID" ] && NEW_SID=$DEFAULT_SID
printf "S-ID is set to $NEW_SID for \"$Title\"\n\n"
fi
else
printf "Title matches, using same S-ID as before : $NEW_SID\n\n"
fi
PrevTitle=$Title
else
[ "$S_ID" = "" ] && NEW_SID=$DEFAULT_SID || NEW_SID=$S_ID
fi
if [ "$NEW_SID" != "s" ]; then
echo "R $CTIME 0 $NEW_SID" >> $EPGSEARCHDONE_FILE
grep -v "^[EVX] " $Rec/info.vdr >> $EPGSEARCHDONE_FILE
echo "r" >> $EPGSEARCHDONE_FILE
else
printf "SKIP \"%s, %s\"\n\n" "$Title" "$Subtitle"
fi
else
printf "SKIP \"%s, %s\" - it has S-ID: $S_ID\n\n" "$Title" "$Subtitle"
fi
else
printf "No Info.vdr found : %s\n" "$Rec"
fi
}
if [ -z "$1" ]; then
printf "\nERROR : Parameter 1 should be either \"--recursive\" with start directory or a recording directory.\n"
exit 1
fi
[ "$TEST" = "yes" ] && EPGSEARCHDONE_FILE=$EPGSEARCHDONE_FILE.test || cp $EPGSEARCHDONE_FILE $EPGSEARCHDONE_FILE.bak
if [ "$1" = "--recursive" ]; then
shift
[ "$ASK_SID" = "yes" ] && ShowUsableSIDs
printf "Default S-ID: $DEFAULT_SID\n\n"
[ ! -z "$1" ] && START_DIR=$1 || START_DIR=$VIDEO_ROOT
for i in $(find $START_DIR/ -type d -name "*.rec" -print); do AddRecToDone $i ; done
else
AddRecToDone $1
fi
if [ "$TEST" = "yes" ]; then
printf "\n\nTEST run !!!!\nNow take a look at the File $EPGSEARCHDONE_FILE to see if everything is OK.\n\n"
else
# Tell epgsearch that done-file was changed
if ! echo "$SVDRPSEND PLUG epgsearch UPDD >/dev/null 2>&1" | at now >/dev/null 2>&1; then
if ! setsid "$SVDRPSEND" PLUG epgsearch UPDD >/dev/null 2>&1; then
echo "ERROR calling $SVDRPSEND PLUG epgsearch UPDD"
fi
fi
fi
#EOF
|