#!/bin/bash

if [ "$1" = "--force" ] ; then
        RESCAN_ALL=1
fi

IFS="
"

#set -x

if [ $RESCAN_ALL ] ; then
        FILES="`grep -rl 'episodedetails' */*/*.nfo`"
else
        # Get a list of all NFO files having incorrect information
        FILES="`egrep -rli '(<durationinseconds>(|0)</durationinseconds>|duration>)' */*/*.nfo`"
fi

for episode in $FILES; do
        # figure out the episode file extension
        tvepisode="`ls ${episode%.*}.* | egrep -i '(mkv|avi|mp4)'`"
        runtime="`mediainfo --Inform='Video;%Duration%' ${tvepisode} | cut -d\  -f1-2`"
        runtime_in_s=`echo "scale=0; $runtime/1000" | bc`

        # Get the old duration if possible
        old_line="`grep duration $episode | cut -d\  -f9- | tail -n1`"
        new_line="<durationinseconds>$runtime_in_s</durationinseconds>"

        shopt -q -s extglob
        echo "Updating episode information in $episode"
        if [ -z $old_line ] ; then
                sudo sed -i "s,<durationinseconds>0</durationinseconds>,$new_line," $episode
                sudo sed -i "s,<durationinseconds></durationinseconds>,$new_line," $episode
        else
                sudo sed -i "s,${old_line##+([[:space:]])},$new_line,g" $episode
        fi
        shopt -q -u extglob
done

#set +x

