#!/bin/bash HOST="127.0.0.1" PORT="8081" DBFILE="/opt/Sick-Beard/sickbeard.db" SQLITE=`which sqlite3` usage() { echo >&2 "`basename $0` - sickbeard command line interface options: -h host Connect to this host/ip (currently: $HOST) -p port Connect on this port (currently: $PORT) -d dbfile Use this sqlite db file (currently: $DBFILE) valid commands: list List sickbeard shows add showdir Add a show to sickbeard update [showname] Update a specific show default: all shows rescan [showname] Rescan files for a specific show default: all shows fixnames [showname] Fix episode file names for a show default: all shows history [num] Shows history default: 25 coming [date] Show coming episodes for the given date default: today and tomorrow" exit 2 } list () { SQL="select show_name from tv_shows order by show_name asc;" "$SQLITE" "$DBFILE" "$SQL" exit } gettvdbid () { SHOWNAME=$1 SQL="select tvdb_id from tv_shows where show_name=\"${SHOWNAME}\";" TVDBID=$("$SQLITE" "$DBFILE" "$SQL") if [ $TVDBID == "" ]; then return 1 else echo $TVDBID fi } getallids () { "$SQLITE" "$DBFILE" "select tvdb_id from tv_shows;" | tr '\n' '|' | sed -e 's/|$//' } rescan () { if [ $# -gt 0 ]; then SHOWNAME="$*" SHOWID=$(gettvdbid "$SHOWNAME") || exit 2 echo -n "Queueing rescan of $SHOWNAME ... showid $SHOWID ... " else SHOWID=$(getallids) echo -n "Queueing rescan of all shows ... " fi wget -q -O /dev/null "http://${HOST}:${PORT}/manage/massUpdate?toUpdate=&toRefresh=${SHOWID}&toRename=&toMetadata=" echo "done." exit } update () { if [ $# -gt 0 ]; then SHOWNAME="$*" SHOWID=$(gettvdbid "$SHOWNAME") || exit 2 echo -n "Queueing update of $SHOWNAME ... " else SHOWID=$(getallids) echo -n "Queueing update of all shows ... " fi wget -q -O /dev/null "http://${HOST}:${PORT}/manage/massUpdate?toUpdate=${SHOWID}&toRefresh=&toRename=&toMetadata=" echo "done." exit } fixnames () { if [ $# -gt 0 ]; then SHOWNAME="$*" SHOWID=$(gettvdbid "$SHOWNAME") || exit 2 echo -n "Queueing episode renaming of $SHOWNAME ... " else SHOWID=$(getallids) echo -n "Queueing episode renaming of all shows ... " fi wget -q -O /dev/null "http://${HOST}:${PORT}/manage/massUpdate?toUpdate=&toRefresh=&toRename=${SHOWID}&toMetadata=" echo "done." exit } while [ $# -gt 0 ]; do case "$1" in -h) HOST=$2; shift 2;; -p) PORT=$2; shift 2;; -d) DBFILE=$2; shift; shift $#;; update) shift; update $*; shift $#;; fixnames) shift; fixnames $*; shift $#;; rescan) shift; rescan $*; shift $#;; list) list; shift;; *) usage;; esac done usage exit 2