#!/bin/sh

if [ "$*" == "" ]; then
    echo Usage: `basename $0` [title]
    exit 1
fi

SEARCHSTRING="$*"
DBDIR=~/Library/Application\ Support/Plex\ Media\ Server/Plug-in\ Support/Databases
BUNDLEDIR=~/Library/Application\ Support/Plex\ Media\ Server/Metadata
TMPFILE=/tmp/`basename $0`.$$.out

echo "SELECT title, guid FROM metadata_items \
        WHERE title LIKE '%${SEARCHSTRING}%'"\; \
    | sqlite3 "${DBDIR}/com.plexapp.plugins.library.db" \
    > ${TMPFILE}

ENTRIESFOUND=`cat ${TMPFILE} | wc -l`
if [ "${ENTRIESFOUND}" -eq 1 ]; then
    SHOWNAME=`cat ${TMPFILE} | awk -F\| '{ print $1; }'`
    SHOWID=`cat ${TMPFILE} | awk -F\| '{ print $2; }'`
    SHOWSUM=`/bin/echo -n "${SHOWID}" | shasum | cut -c 1-40`
    SHOWCHAR=`echo ${SHOWSUM} | cut -c 1`
    SHOWDIR=`echo ${SHOWSUM} | cut -c 2-40`
    echo Title: ${SHOWNAME}
    if [ -d "${BUNDLEDIR}/Movies/${SHOWCHAR}/${SHOWDIR}.bundle" ]; then
        BUNDLEFILE="${BUNDLEDIR}/Movies/${SHOWCHAR}/${SHOWDIR}.bundle"
        BUNDLEDEST=/tmp/PlexPosterBundles/Movies
    else
        if [ -d "${BUNDLEDIR}/TV Shows/${SHOWCHAR}/${SHOWDIR}.bundle" ]; then
            BUNDLEFILE="${BUNDLEDIR}/TV Shows/${SHOWCHAR}/${SHOWDIR}.bundle"
            BUNDLEDEST=/tmp/PlexPosterBundles/TV
        else
            echo No bundle found.
        fi
    fi
else
    if [ "${ENTRIESFOUND}" -gt 1 ]; then
        echo Multiple Entries Found:
        cat ${TMPFILE} | awk -F\| '{ printf("    %s\n", $1); }'
        echo Please try a more specific search string.
    else
        echo No entries found -- please try a different search string.
    fi
fi

if [ -d "${BUNDLEFILE}" ]; then
    if [ ! -d "${BUNDLEDEST}" ]; then
        if [ ! -d /tmp/PlexPosterBundles ]; then
            mkdir /tmp/PlexPosterBundles
        fi
        mkdir "${BUNDLEDEST}"
    fi
    mv "${BUNDLEFILE}" "${BUNDLEDEST}/."
    echo Bundle found and moved to "${BUNDLEDEST}"
    echo ""
    echo Now go to Plex Media Manager and choose "Fix Incorrect Match"
    echo "    and then "Update Selection" for this title."
fi

rm ${TMPFILE}

