Pomoc Pomoc w uruchomieniu skryptu Transmission wywołującego się po pobraniu plików

lukjod

Entry Technician
Q Associate
2 Lipiec 2014
43
1
7
8
50
Warszawa
QNAP
TS-x64
Ethernet
1 GbE
Jest to mój pierwszy post także Witam wszystkich obecnych i od razu proszę o pomoc:
Zainstalowałem transmission z pkq QNAP NAS Community Forum • [QPKG] Transmission + Addons (2) [Intel x86/Arm-x1x]
i ma ona w sobie zaszyty rowniez skrypt automatycznie rozpakowujący archiwa pobranego torrenta, wywołuje się: /share/HDA_DATA/.qpkg/Transmission/scripts/run_scripts.sh o zawartości:
Bash:
#!/bin/sh

chmod -R 0777 $TR_TORRENT_DIR

/share/HDA_DATA/.qpkg/Transmission/scripts/addons/unrar_unzip_script.sh

który uruchamia skrypt o zawartości:
Bash:
#!/bin/sh

set -x

TR_DIR="${TR_TORRENT_DIR}"
TR_NAME="${TR_TORRENT_NAME}"

QPKG_DIR=`/sbin/getcfg Transmission Install_Path -f /etc/config/qpkg.conf`
FIND_PATH="${QPKG_DIR}/bin/find"
LOG_FILE_PATH="${QPKG_DIR}/web-gui/admin/logs/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=`/sbin/getcfg unzip_unrar DECOMPRESS_TO -f ${QPKG_DIR}/conf/addons.conf` #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/$TR_NAME"
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 1 -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/$TR_NAME"
        for RAR_FILE in "${RAR_FILES[@]}"; do
            /opt/bin/unrar $UNRAR_TRIGGERS "$RAR_FILE" "$DESTINATION_DIR/$TR_NAME" >> $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 1 -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/$TR_NAME"
            for ZIP_FILE in "${ZIP_FILES[@]}"; do
                /opt/bin/unzip $UNZIP_TRIGGERS "$ZIP_FILE" -d "$DESTINATION_DIR/$TR_NAME" >> $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=`${QPKG_DIR}/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"
        
            /opt/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"
                /opt/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=`${QPKG_DIR}/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
# This script can be executed to update NMJ database.
echo "Downloading subs for transmission completed folder..."
napi.sh -s -c -n -f subrip --stats -l /share/HDA_DATA/Download/transmission/napi_transmission.log /share/HDA_DATA/Download/transmission/completed
.
Jak mogę dopisać aby nastepnie uruchomic skrypt ściągający napisy, info i okładkę z napiprojekt.pl do wypakowanego folderu?
Skrypt znajduje się w Path wiec sam poprawnie działa napi.sh -s -c -n -f subrip --stats.

Prosze o pomoc
 
Wykonaj, aby edytować plik run_scripts.sh:
Bash:
QPKG_DIR=`/sbin/getcfg Transmission Install_Path -f /etc/config/qpkg.conf`
vi $QPKG_DIR/scripts/run_scripts.sh

Dopisz uruchomienie nowego skryptu:
(Dla poprawności powinieneś zawsze odwoływać się do lokalizacji zainstalowanego Transmission - dlatego, użyj getcfg, aby odczytać lokalizację jego instalacji)
Bash:
QPKG_DIR=`/sbin/getcfg Transmission Install_Path -f /etc/config/qpkg.conf`
TR_ADDONS=$QPKG_DIR/scripts/addons

ACTION_TIME=$(date +%d-%m-%Y\ %H:%M:%S)
NAME=$0

_err(){
	local msg_type="err!"
	local write_err="/sbin/log_tool -t2 -u$NAME -p127.0.0.1 -mlocalhost -a"
	local message="$NAME: ${*:-"Unknown Error"}" && $write_err "($msg_type) $message"

	echo "${ACTION_TIME} $message" >> /share/Download/transmission_scripts.log
	echo -e "($msg_type) $message \n"
}

if [ -x "$TR_ADDONS/auto_subsdler_script.sh" ] && [ -f "$TR_ADDONS/auto_subsdler_script.sh" ]; then
	$TR_ADDONS/auto_subsdler_script.sh
else
	_err "Nie mozna odnalezc pliku lub nie jest on wykonywalny $TR_ADDONS/auto_subsdler_script.sh"
fi

Utwórz plik auto_subsdler_script.sh wykonując w konsoli następujące:
Bash:
QPKG_DIR=`/sbin/getcfg Transmission Install_Path -f /etc/config/qpkg.conf`
TR_ADDONS=$QPKG_DIR/scripts/addons
cd $TR_ADDONS
touch auto_subsdler_script.sh
chmod a+x auto_subsdler_script.sh

Edytuj utworzony plik:
Bash:
vi auto_subsdler_script.sh
Do pliku wklej:
Bash:
#!/bin/sh

TR_DIR="${TR_TORRENT_DIR}"
TR_NAME="${TR_TORRENT_NAME}"

QPKG_DIR=`/sbin/getcfg Transmission Install_Path -f /etc/config/qpkg.conf`
DECOMPRESS_TO_DIR=`/sbin/getcfg unzip_unrar DECOMPRESS_TO -f ${QPKG_DIR}/conf/addons.conf`

if [ -z $DECOMPRESS_TO_DIR ]; then
    DESTINATION_DIR="$TR_DIR/$TR_NAME"
else
    DESTINATION_DIR="$DECOMPRESS_TO_DIR/$TR_NAME"
fi

cd "$TR_DIR"
if [ -d "$TR_NAME" ]; then
    cd "$TR_NAME"
fi
##in case the torrent is a file
#else

napi.sh -s -c -n -f subrip --stats

Pisane z palca, nawet nie wiem jak ten napi.sh działa także... milej zabawy :)
 
  • Lubię to
Reakcje: lukjod i kaktus