Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- set -x
- TR_DIR="${TR_TORRENT_DIR}"
- TR_NAME="${TR_TORRENT_NAME}"
- QPKG_DIR=`/sbin/getcfg QTransmission Install_Path -f /etc/config/qpkg.conf`
- FIND_PATH="/usr/bin/find"
- LOG_FILE_PATH="/home/osmc/.config/transmission-daemon/scripts/unpack.log" #PATH to store the log file, blank to disable
- UNRAR_TRIGGERS="x -y -o+ -idp" #triggers for unrar operation, use this to control the info logged (see unrar command manual)
- UNZIP_TRIGGERS="-o" #same as unrar but for zip.
- DECOMPRESS_TO_DIR="/media/USBDisk1/Torrent/Unpacked" #If blank will unpack in its own directory, else will unpack to a fixed directory
- ACTION_TIME=$(date +%d-%m-%Y\ %H:%M:%S)
- if [ -z $DECOMPRESS_TO_DIR ]; then
- DESTINATION_DIR="$TR_DIR/"
- else
- DESTINATION_DIR="$DECOMPRESS_TO_DIR/$TR_NAME"
- fi
- cd "$TR_DIR"
- if [ -d "$TR_NAME" ]; then
- cd "$TR_NAME"
- IFS=$'\n'
- unset RAR_FILES i
- FIND_RESULTS=`$FIND_PATH -maxdepth 3 -iname "*.rar"`
- for RAR_FILE in $FIND_RESULTS; do
- if [[ $RAR_FILE =~ .*part.*.rar ]]; then
- if [[ $RAR_FILE =~ .*part0*1.rar ]]; then
- RAR_FILES[i++]=$RAR_FILE
- fi
- else
- RAR_FILES[i++]=$RAR_FILE
- fi
- done
- unset IFS
- unset FIND_RESULTS
- if [ ${#RAR_FILES} -gt 0 ]; then
- mkdir -p "$DESTINATION_DIR/"
- for RAR_FILE in "${RAR_FILES[@]}"; do
- /usr/bin/unrar $UNRAR_TRIGGERS "$RAR_FILE" "$DESTINATION_DIR/" >> $LOG_FILE_PATH
- if [ $? -gt 0 ]; then
- echo $ACTION_TIME "Error unrarring $TR_NAME torrent" >> $LOG_FILE_PATH
- exit 0
- else
- echo $ACTION_TIME "Unrarred $TR_NAME torrent" >> $LOG_FILE_PATH
- fi
- done
- fi
- IFS=$'\n'
- FIND_RESULTS=`$FIND_PATH -maxdepth 3 -iname "*.zip"`
- for ZIP_FILE in $FIND_RESULTS; do
- ZIP_FILES[i++]=$ZIP_FILE
- done
- if [ ${#ZIP_FILES} -gt 0 ]; then
- mkdir -p "$DESTINATION_DIR"
- for ZIP_FILE in "${ZIP_FILES[@]}"; do
- /opt/bin/unzip $UNZIP_TRIGGERS "$ZIP_FILE" -d "$DESTINATION_DIR/" >> $LOG_FILE_PATH
- if [ $? -gt 0 ]; then
- echo $ACTION_TIME "Error unziping $TR_NAME torrent" >> $LOG_FILE_PATH
- exit 0
- else
- echo $ACTION_TIME "Unziped $TR_NAME torrent" >> $LOG_FILE_PATH
- fi
- done
- fi
- unset IFS
- #in case the torrent is a file
- else
- #special case when the torrent name contains the archive extension
- FILENAME=`/usr/bin/basename "$TR_NAME" .rar`
- if [ -f "$FILENAME.rar" ]; then
- echo "Special rar archive found ..."
- if [ -z "$DECOMPRESS_TO_DIR" ]; then
- DESTINATION_DIR="${TR_DIR}/$FILENAME"
- else
- DESTINATION_DIR="$DECOMPRESS_TO_DIR/$FILENAME"
- fi
- mkdir -p "$DESTINATION_DIR"
- /usr/bin/unrar $UNRAR_TRIGGERS "$FILENAME.rar" "$DESTINATION_DIR" >> $LOG_FILE_PATH
- if [ $? -gt 0 ]; then
- echo $ACTION_TIME "Error unrarring $TR_NAME torrent" >> $LOG_FILE_PATH
- exit 0
- else
- echo $ACTION_TIME "Unrarred $TR_NAME torrent" >> $LOG_FILE_PATH
- fi
- else
- if [ -f "$TR_NAME.rar" ]; then
- mkdir -p "$DESTINATION_DIR"
- /usr/bin/unrar $UNRAR_TRIGGERS "$TR_NAME.rar" "$DESTINATION_DIR" >> $LOG_FILE_PATH
- if [ $? -gt 0 ]; then
- echo $ACTION_TIME "Error unrarring $TR_NAME torrent" >> $LOG_FILE_PATH
- exit 0
- else
- echo $ACTION_TIME "Unrarred $TR_NAME torrent" >> $LOG_FILE_PATH
- fi
- fi
- fi
- FILENAME=`/usr/bin/basename "$TR_NAME" .zip`
- if [ -f "$FILENAME.zip" ]; then
- echo "Special zip archive found ..."
- mkdir -p "$DESTINATION_DIR"
- /opt/bin/unzip $UNZIP_TRIGGERS "$FILENAME.zip" -d "$DESTINATION_DIR" \ >> $LOG_FILE_PATH
- if [ $? -gt 0 ]; then
- echo $ACTION_TIME "Error unzipping $TR_NAME torrent" >> $LOG_FILE_PATH
- exit 0
- else
- echo $ACTION_TIME "Unziped $TR_NAME torrent" >> $LOG_FILE_PATH
- fi
- else
- LIST_ZIP_FILE=`ls "$TR_NAME.zip" 2>/dev/null`
- if [ ! -z "$LIST_ZIP_FILE" ]; then
- mkdir -p "$DESTINATION_DIR"
- /opt/bin/unzip $UNZIP_TRIGGERS "$LIST_ZIP_FILE" -d "$DESTINATION_DIR" >> $LOG_FILE_PATH
- if [ $? -gt 0 ]; then
- echo $ACTION_TIME "Error unzipping $TR_NAME torrent" >> $LOG_FILE_PATH
- exit 0
- else
- echo $ACTION_TIME "Unziped $TR_NAME torrent" >> $LOG_FILE_PATH
- fi
- fi
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement