findDate.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/bash
  2. set -e
  3. # Parameters
  4. TV_DIR="/Volumes/media/TV"
  5. SERIES="${1}"
  6. SEARCH="${2}"
  7. DAYS_BACK="${3}"
  8. MAX_DAYS_BACK="${4}"
  9. # Usage
  10. if [ -z "${SERIES}" ] || [ -z "${SEARCH}" ] || [ -z "${DAYS_BACK}" ] || \
  11. ! echo "${DAYS_BACK}" | grep -qE '^[0-9]*$' || [ $DAYS_BACK -lt 1 ] || [ $DAYS_BACK -gt 90 ]; then
  12. echo "Usage: `basename "${0}" series search days_back [max_days_back]`" 1>&2
  13. exit 1
  14. fi
  15. # Allow use in recursive mode
  16. if [ -n "${MAX_DAYS_BACK}" ]; then
  17. if ! echo "${MAX_DAYS_BACK}" | grep -qE '^[0-9]*$' || [ $MAX_DAYS_BACK -lt $DAYS_BACK ] || [ $MAX_DAYS_BACK -gt 90 ]; then
  18. echo "Usage: `basename "${0}" series search days_back [max_days_back]`" 1>&2
  19. exit 1
  20. fi
  21. while [ $DAYS_BACK -le $MAX_DAYS_BACK ]; do
  22. "${0}" "${SERIES}" "${SEARCH}" "${DAYS_BACK}"
  23. DAYS_BACK=$(( $DAYS_BACK + 1 ))
  24. done
  25. exit 0
  26. fi
  27. # Calculate some dates
  28. YEAR="`date -v-${DAYS_BACK}d '+%Y'`"
  29. MONTH="`date -v-${DAYS_BACK}d '+%m'`"
  30. DAY="`date -v-${DAYS_BACK}d '+%d'`"
  31. # Bail if we already have a matcing file
  32. FILES="`find "${TV_DIR}/${SERIES}/Season ${YEAR}" -type f -not -name '*.nfo' -not -name '*.tbn' -name "${YEAR}-${MONTH}-${DAY} - *"`"
  33. if [ -n "${FILES}" ]; then
  34. exit 0
  35. fi
  36. # Otherwise run a search
  37. SEARCH="`echo "${SEARCH}" | sed "s/%Y/${YEAR}/g"`"
  38. SEARCH="`echo "${SEARCH}" | sed "s/%m/${MONTH}/g"`"
  39. SEARCH="`echo "${SEARCH}" | sed "s/%d/${DAY}/g"`"
  40. ~/bin/video/findTorrent.pl "${SERIES}" "${SEARCH}"