Advertisement
Guest User

unrar for transmission

a guest
May 16th, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.10 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. set -x
  4.  
  5. TR_DIR="${TR_TORRENT_DIR}"
  6. TR_NAME="${TR_TORRENT_NAME}"
  7.  
  8. QPKG_DIR=`/sbin/getcfg QTransmission Install_Path -f /etc/config/qpkg.conf`
  9. FIND_PATH="/usr/bin/find"
  10. LOG_FILE_PATH="/home/osmc/.config/transmission-daemon/scripts/unpack.log"   #PATH to store the log file, blank to disable
  11. UNRAR_TRIGGERS="x -y -o+ -idp" #triggers for unrar operation, use this to control the info logged (see unrar command manual)
  12. UNZIP_TRIGGERS="-o" #same as unrar but for zip.
  13. DECOMPRESS_TO_DIR="/media/USBDisk1/Torrent/Unpacked" #If blank will unpack in its own directory, else will unpack to a fixed directory
  14. ACTION_TIME=$(date +%d-%m-%Y\ %H:%M:%S)
  15.  
  16. if [ -z $DECOMPRESS_TO_DIR ]; then
  17.     DESTINATION_DIR="$TR_DIR/"
  18. else
  19.     DESTINATION_DIR="$DECOMPRESS_TO_DIR/$TR_NAME"
  20. fi
  21.  
  22.     cd "$TR_DIR"
  23.     if [ -d "$TR_NAME" ]; then
  24.         cd "$TR_NAME"  
  25.         IFS=$'\n'
  26.         unset RAR_FILES i
  27.         FIND_RESULTS=`$FIND_PATH -maxdepth 3 -iname "*.rar"`
  28.         for RAR_FILE in $FIND_RESULTS; do
  29.             if [[ $RAR_FILE =~ .*part.*.rar ]]; then
  30.                 if [[ $RAR_FILE =~ .*part0*1.rar ]]; then
  31.                     RAR_FILES[i++]=$RAR_FILE
  32.                 fi
  33.             else
  34.                 RAR_FILES[i++]=$RAR_FILE
  35.             fi
  36.         done
  37.         unset IFS
  38.         unset FIND_RESULTS
  39.        
  40.         if [ ${#RAR_FILES} -gt 0 ]; then
  41.         mkdir -p "$DESTINATION_DIR/"
  42.         for RAR_FILE in "${RAR_FILES[@]}"; do
  43.             /usr/bin/unrar $UNRAR_TRIGGERS "$RAR_FILE" "$DESTINATION_DIR/" >> $LOG_FILE_PATH
  44.             if [ $? -gt 0 ]; then
  45.                 echo $ACTION_TIME "Error unrarring $TR_NAME torrent" >> $LOG_FILE_PATH
  46.                 exit 0
  47.             else
  48.                 echo $ACTION_TIME "Unrarred $TR_NAME torrent" >> $LOG_FILE_PATH
  49.             fi
  50.         done
  51.         fi
  52.        
  53.         IFS=$'\n'
  54.         FIND_RESULTS=`$FIND_PATH -maxdepth 3 -iname "*.zip"`
  55.         for ZIP_FILE in $FIND_RESULTS; do
  56.             ZIP_FILES[i++]=$ZIP_FILE
  57.         done
  58.         if [ ${#ZIP_FILES} -gt 0 ]; then
  59.             mkdir -p "$DESTINATION_DIR"
  60.             for ZIP_FILE in "${ZIP_FILES[@]}"; do
  61.                 /opt/bin/unzip $UNZIP_TRIGGERS "$ZIP_FILE" -d "$DESTINATION_DIR/" >> $LOG_FILE_PATH
  62.                 if [ $? -gt 0 ]; then
  63.                     echo $ACTION_TIME "Error unziping $TR_NAME torrent" >> $LOG_FILE_PATH
  64.                     exit 0
  65.                 else
  66.                     echo $ACTION_TIME "Unziped $TR_NAME torrent" >> $LOG_FILE_PATH
  67.                 fi
  68.             done
  69.         fi
  70.         unset IFS
  71.        
  72.     #in case the torrent is a file 
  73.     else
  74.         #special case when the torrent name contains the archive extension
  75.         FILENAME=`/usr/bin/basename "$TR_NAME" .rar`
  76.  
  77.         if [ -f "$FILENAME.rar" ]; then
  78.             echo "Special rar archive found ..."
  79.            
  80.             if [ -z "$DECOMPRESS_TO_DIR" ]; then
  81.                 DESTINATION_DIR="${TR_DIR}/$FILENAME"
  82.             else
  83.                 DESTINATION_DIR="$DECOMPRESS_TO_DIR/$FILENAME"
  84.             fi
  85.            
  86.             mkdir -p "$DESTINATION_DIR"
  87.            
  88.             /usr/bin/unrar $UNRAR_TRIGGERS "$FILENAME.rar" "$DESTINATION_DIR" >> $LOG_FILE_PATH
  89.             if [ $? -gt 0 ]; then
  90.                 echo $ACTION_TIME "Error unrarring $TR_NAME torrent" >> $LOG_FILE_PATH
  91.                 exit 0
  92.             else
  93.                 echo $ACTION_TIME "Unrarred $TR_NAME torrent" >> $LOG_FILE_PATH
  94.             fi
  95.         else   
  96.             if [ -f "$TR_NAME.rar" ]; then
  97.                 mkdir -p "$DESTINATION_DIR"
  98.                 /usr/bin/unrar $UNRAR_TRIGGERS "$TR_NAME.rar" "$DESTINATION_DIR" >> $LOG_FILE_PATH
  99.                 if [ $? -gt 0 ]; then
  100.                     echo $ACTION_TIME "Error unrarring $TR_NAME torrent" >> $LOG_FILE_PATH
  101.                     exit 0
  102.                 else
  103.                     echo $ACTION_TIME "Unrarred $TR_NAME torrent" >> $LOG_FILE_PATH
  104.                 fi
  105.             fi
  106.         fi
  107.  
  108.         FILENAME=`/usr/bin/basename "$TR_NAME" .zip`
  109.  
  110.         if [ -f "$FILENAME.zip" ]; then
  111.             echo "Special zip archive found ..."
  112.             mkdir -p "$DESTINATION_DIR"
  113.             /opt/bin/unzip $UNZIP_TRIGGERS "$FILENAME.zip" -d "$DESTINATION_DIR" \ >> $LOG_FILE_PATH
  114.             if [ $? -gt 0 ]; then
  115.                 echo $ACTION_TIME "Error unzipping $TR_NAME torrent" >> $LOG_FILE_PATH
  116.                 exit 0
  117.             else
  118.                 echo $ACTION_TIME "Unziped $TR_NAME torrent" >> $LOG_FILE_PATH
  119.             fi
  120.         else
  121.             LIST_ZIP_FILE=`ls "$TR_NAME.zip" 2>/dev/null`
  122.             if [ ! -z "$LIST_ZIP_FILE" ]; then
  123.                 mkdir -p "$DESTINATION_DIR"
  124.                 /opt/bin/unzip $UNZIP_TRIGGERS "$LIST_ZIP_FILE" -d "$DESTINATION_DIR" >> $LOG_FILE_PATH
  125.                 if [ $? -gt 0 ]; then
  126.                     echo $ACTION_TIME "Error unzipping $TR_NAME torrent" >> $LOG_FILE_PATH
  127.                     exit 0
  128.                 else
  129.                     echo $ACTION_TIME "Unziped $TR_NAME torrent" >> $LOG_FILE_PATH
  130.                 fi
  131.             fi
  132.         fi
  133.     fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement