jdownloader auf qnap

Um jdownloader auf einem qnap zu installieren und über das Webinterface zu verwenden, müssen Sie die folgenden Schritte ausführen

Zuerst müssen Sie installieren „Entware“ mit diesem Skript https://raw.githubusercontent.com/Entware/installer.sh/master/generic.sh

Dann müssen Sie JRE über den QNAP Store installieren

Registrieren Sie ein Konto auf https://my.jdownloader.org

Jetzt müssen Sie diesen Code ausführen

#!/bin/bash

clear

/bin/echo ""
/bin/echo "============================================================="
/bin/echo "            JDownloader2 QPKG Installer script"
/bin/echo "============================================================="
/bin/echo ""

JAVA_HOME_TEST=$(/bin/cat /etc/profile | awk '/JAVA_HOME=/ { print $2 }' | tail -c +11)
CONF=/etc/config/qpkg.conf
QPKG_NAME="JDownloader2"
QPKG_DIR=$(/sbin/getcfg $QPKG_NAME Install_Path -f $CONF)
JD2_UPDATE_FILE="jd2_update"
JD2_UPDATE_LINK="https://www.dropbox.com/s/gmp6wu95b3wyecm/$JD2_UPDATE_FILE"
JD2_JAR_FILE="http://installer.jdownloader.org/JDownloader.jar"
JAR_FILENAME=`/bin/echo $JD2_JAR_FILE | cut -d'/' -f 4`

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

if [ ! -z $QPKG_DIR ] ; then
  /bin/echo "===================================================================================="
  /bin/echo "JDownloader2 is already installed, please remove it if you want to install it again!"
  /bin/echo "===================================================================================="
  /sbin/write_log "JDownloader2 is already installed, please remove it if you want to install it again!" 1
  exit
fi

QPKG_DIR=

# Determine BASE installation location according to smb.conf
BASE=
publicdir=`/sbin/getcfg Public path -f /etc/config/smb.conf`
if [ ! -z $publicdir ] && [ -d $publicdir ];then
  publicdirp1=`/bin/echo $publicdir | /bin/cut -d "/" -f 2`
  publicdirp2=`/bin/echo $publicdir | /bin/cut -d "/" -f 3`
  publicdirp3=`/bin/echo $publicdir | /bin/cut -d "/" -f 4`
  if [ ! -z $publicdirp1 ] && [ ! -z $publicdirp2 ] && [ ! -z $publicdirp3 ]; then
    [ -d "/${publicdirp1}/${publicdirp2}/Public" ] && BASE="/${publicdirp1}/${publicdirp2}"
  fi
fi

# Determine BASE installation location by checking where the Public folder is.
if [ -z $BASE ]; then
  for datadirtest in /share/HDA_DATA /share/HDB_DATA /share/HDC_DATA /share/HDD_DATA /share/MD0_DATA; do
    [ -d $datadirtest/Public ] && BASE="$datadirtest"
  done
fi
if [ -z $BASE ] ; then
  /bin/echo "The Public share not found."
  exit
fi

#JD2_TMP_DIR="$publicdir/$JD2_DIR"

CheckForOpt(){ #Does /opt exist? if not check if it's optware that's installed or opkg, and start the package 
  /bin/echo -n " Checking for /opt..."
  if [ ! -d /opt/bin ]; then
    if [ -x /etc/init.d/Optware.sh ]; then #if optware ,start optware
      /bin/echo "  Starting Optware..."
      /etc/init.d/Optware.sh start
      sleep 2
    elif [ -x /etc/init.d/opkg.sh ]; then #if opkg, start opkg  
      /bin/echo "  Starting Opkg..."    
      /etc/init.d/opkg.sh start
      sleep 2
    elif [ -x /etc/init.d/Entware-ng.sh ]; then #if Entware-ng, start Entware-ng  
      /bin/echo "  Starting Entware-ng..."    
      /etc/init.d/Entware-ng.sh start
      sleep 2
    else #catch all
      /bin/echo "  No Optware or Opkg or Entware-ng found, please install one of them"    
      /sbin/write_log "Failed to start $QPKG_NAME, no Optware or Opkg or Entware-ng found. Please re-install one of those packages" 1 
      exit 1
    fi
  else
    /bin/echo "  Found!"
  fi
  }

pid_check() {
  # Check if process is already running
  PROCESS_PID=0
  for pid in $(/bin/pidof java); do
    # Try to find if the process is JDownloader
    /bin/grep -q "JDownloader" /proc/$pid/cmdline
    if [ $? -eq 0 ]; then
    # Process found, save PID and exit loop
    PROCESS_PID=$pid
    break
    fi
  done
  # Print result
  #/bin/echo "Pid of process = $PROCESS_PID"
  }

Shutdown_jd2() { #kills a proces based on a PID in a given PID file
  pid_check
  /bin/echo -n "Checking if $QPKG_NAME is running... "
  if [[ $PROCESS_PID -eq 0 ]]; then
    /bin/echo "$QPKG_NAME is not running!"
  else
    /bin/echo "Shutting down $QPKG_NAME... "
    i=0
    /bin/kill $PROCESS_PID
    /bin/echo -n "Waiting for $QPKG_NAME to shut down: "
    while [ -d /proc/$PROCESS_PID ]; do
      /bin/sleep 1
      let i+=1
      /bin/echo -n "$i, "
      if [ $i = 45 ]; then
        /bin/echo "   Tired of waiting, killing $QPKG_NAME now"
        /bin/kill -9 $PROCESS_PID
        exit 1
      fi
    done
    /bin/echo "Done"
  fi
  }

java_check() {
  /bin/echo -n "Checking for Java... "
  if [ -z "$JAVA_HOME_TEST" ]; then
    /bin/echo "Java PATH not found. Please install JRE QPKG from http://goo.gl/ayMIbE or via the Qnap App Center"
    /bin/echo "NOTE: If you have just installed Java, close and reopen your session to update (putty)."
    exit 1
  else
    /bin/echo "Found... exporting variables"
    export JAVA_HOME=$JAVA_HOME_TEST
  fi

  # Store JAVA binary path
  JAVA_BIN=${JAVA_HOME_TEST}/bin/java
  
  # Check if Java runs correctly
  /bin/echo -n "Checking for Java executable... "
  if ! $JAVA_BIN -version 2>&1 | /bin/grep -q "Java(TM)"; then
    /bin/echo "Java does not run correctly. Please test the Java environment and try again."
    exit 2
  fi
    /bin/echo "All OK!"
  }

countdown() {
  local OLD_IFS="${IFS}"
  IFS=":"
  local ARR=( $1 ) ; shift
  IFS="${OLD_IFS}"
  local PREFIX="$*" ; [ -n "${PREFIX}" ] && PREFIX="${PREFIX} > "
  local SECONDS=$((  (ARR[0] * 60 * 60) + (ARR[1] * 60) + ARR[2]  ))
  local START=$(date +%s)
  local END=$((START + SECONDS))
  local CUR=$START
 
  while [[ $CUR -lt $END ]]
  do
          CUR=$(date +%s)
          LEFT=$((END-CUR))

          printf "\r${PREFIX}%02d:%02d:%02d" \
                  $((LEFT/3600)) $(( (LEFT/60)%60)) $((LEFT%60))

          /bin/sleep 1
  done
  printf "\nOk, now I resume the installation\n"
  }

jar_download() {
  if [[ ! -d $JD2_DEST_DIR ]]; then
    /bin/mkdir -p $JD2_DEST_DIR
  fi
  /bin/echo -n "Info: Downloading $QPKG_NAME Jar file... "
  if /usr/bin/wget --no-check-certificate $JD2_JAR_FILE --directory-prefix=$JD2_DEST_DIR 1>/dev/null 2>&1 ; then
    /bin/echo "Done"
    /bin/sleep 2
  else
    /bin/echo "Error!"
    /bin/echo "Couldn't download $QPKG_NAME Jar file. Please check your internet connection and try again."
    exit 0
  fi
  }

cleanup() {
if [[ -f "$publicdir/$JD2_UPDATE_FILE" ]]; then
  rm -rf "$publicdir/$JD2_UPDATE_FILE"
fi
if [[ -f "$publicdir/$QPKG_FILE" ]]; then
  rm -rf "$publicdir/$QPKG_FILE"
fi
  }

set_variables() {
QPKG_DIR=$(/sbin/getcfg $QPKG_NAME Install_Path -f $CONF)
JD2_DEST_DIR="$QPKG_DIR/jd2"
  }

qpkg_download_and_install() {
  echo -n "Info: Downloading update file ... "
  if /usr/bin/wget --no-check-certificate $JD2_UPDATE_LINK --directory-prefix=$publicdir 1>/dev/null 2>&1 ; then
    echo "Done."
  else
    echo "Failed."
    /bin/echo "Oops, couldn't download JDownloader2 update file. Please check your internet connection."
    exit 0
  fi
  
  export DLINK=`/sbin/getcfg JDownloader2 dl_link -f $publicdir/$JD2_UPDATE_FILE`
  QPKG_FILE=`echo $DLINK | cut -d'/' -f 6`

  echo "Info: Starting download QPKG ... "
  
  if [[ -f "$publicdir/$JD2_UPDATE_FILE" ]]; then
    rm -rf "$publicdir/$JD2_UPDATE_FILE"
  fi

  if /usr/bin/wget --no-check-certificate -O $publicdir/$QPKG_FILE $DLINK 1>/dev/null 2>&1 ; then
    echo "Info: Download completed succesfully"
  else
    echo "Failed."
    /bin/echo "Oops, couldn't download JDownloader2 QPKG file."
    exit 0
  fi
      echo "Info: Installing the QPKG ..."
      /bin/sh $publicdir/$QPKG_FILE
      if [ "$?" != "0" ]; then
        echo "Info: Installation succesfully completed."
        /sbin/write_log "JDownloader2 QPKG succesfully installed." 4
      else 
        echo "Error occured during JDownloader2 QPKG installation."
        /sbin/write_log "Error occured during JDownloader2 QPKG installation!" 1
        rm -rf "$publicdir/$QPKG_FILE"
        exit 0
      fi
    }

umask 000
CheckForOpt
java_check
qpkg_download_and_install
set_variables
jar_download
cd $JD2_DEST_DIR && $JAVA_BIN -Djava.awt.headless=true -jar $JD2_DEST_DIR/$JAR_FILENAME
countdown "00:00:10" "Please Wait ..."
Shutdown_jd2
cd $JD2_DEST_DIR && $JAVA_BIN -Djava.awt.headless=true -jar $JD2_DEST_DIR/$JAR_FILENAME
Shutdown_jd2
cleanup
/bin/echo "=========================================================================================="
/bin/echo "All done!!! Remember to log-in to https://my.jdownloader.org/login.html and configure JD2!"
/bin/echo "=========================================================================================="
/bin/echo ""
read -s -n 1 -p "Ok, now press any key to continue, then you can terminate this ssh session. Have a Good Download!!!"
/etc/init.d/JDownloader2.sh start &
exit

Während des Setups müssen Sie Ihr Konto registrieren

Jetzt können Sie Ihren Download über das Webinterdace auf myjdownloader verwalten