#!/bin/bash

SCRIPT_VER="1.2"

APP="Deluge - Dropbox Upload"
APP_CATEGORY="Torrent Clients and Utilities"
APP_SCOPE="user"
APP_ENABLED="yes"
APP_VER="1.0"
DEPENDS="Deluge 1.3.5|Deluge 1.3.6|Deluge 1.3.7|Deluge 1.3.8|Deluge 1.3.9|Deluge 1.3.10|Deluge 1.3.11|Deluge 1.3.12|Deluge 1.3.13|Deluge 1.3.14|Deluge 2|Deluge (Latest)"
SUPPORTED_ON="Debian9,Debian10,Ubuntu16.04,Ubuntu18.04,Ubuntu20.04"
LIBRARY="functions4.sh"

if [ "${SUPPORT-}" = '' ]; then
    SUPPORT="https://installers.rapidseedbox.com/scripts/whmcs_client_installers/support"
fi

LOGFILE="/var/log/whmcs_client_installers/${0}.log"
[ ! -d "/var/log/whmcs_client_installers" ] && mkdir -p "/var/log/whmcs_client_installers"

wget -4 -nc -q --no-check-certificate --timeout=20 --tries=5 ${SUPPORT}/${LIBRARY} >> "${LOGFILE}" 2>&1
if [ ! -f "./${LIBRARY}" ] ; then
    echo "55"
    echo "Error downloading \"${SUPPORT}/${LIBRARY}\"" >> "${LOGFILE}"
    exit 55
fi

# shellcheck source=support/functions4.sh
. "./${LIBRARY}"
SCRIPTENTRY

APP_DIRECTORY="/usr/local/bin"
DELUGE_APP_DIRECTORY="${USERHOME}/.config/deluge"

while : ; do

    main_rc=1

    CHECK_APP ; _rc=$?
    if [ ${_rc} -ne 0 ] ; then
        main_rc=${_rc}
        break
    fi

    if [ ! -x "${APP_DIRECTORY}/dropbox_uploader.sh" ] ; then
        WGET "${SUPPORT}/dropbox/Dropbox-Uploader/dropbox_uploader.sh" || break
        if [ ! -d "${APP_DIRECTORY}" ] ; then
            MKDIR "${APP_DIRECTORY}"
        fi
        MV "${TMP_DIR}/dropbox_uploader.sh" "${APP_DIRECTORY}/dropbox_uploader.sh" || break
        CHMOD_FILE 755 "${APP_DIRECTORY}/dropbox_uploader.sh" || break
    fi

    # Create/update Dropbox upload script
    [ -d "${USERHOME}/bin" ] \
        || MKDIR "${USERHOME}/bin"
    cat <<-EOF > "${USERHOME}/bin/upload-to-dropbox.sh"
	#!/bin/bash

	#
	# Name:       upload-to-dropbox.sh
	# Version:    1.0
	#
	# (c) 2017, RapidSeedbox, alexey@rapidseedbox.com

	DEBUG="no"

	LOGFILE="${USERHOME}/log/\$( basename \${0} ).log"
	RSB_FOLDER="/RapidSeedbox"

	[ ! -e "${USERHOME}/log/dropbox" ] && mkdir -p "${USERHOME}/log/dropbox"
	echo -n "\$( date ): \${0} " >> "\${LOGFILE}"
	for s in "\${@}" ; do
	    echo -n "\"\${s}\" " >> "\${LOGFILE}"
	done
	echo "" >> "\${LOGFILE}"

	dir="\$( dirname "\${2}" )"
	[ -n "\${3}" ] && dir="\${3}"
	file="\$( basename "\${2}" )"

	echo "\$( date ): src_dir:  [\${dir}]"  >> "\${LOGFILE}"
	echo "\$( date ): src_file: [\${file}]" >> "\${LOGFILE}"

	r_folder="\${RSB_FOLDER}"
	if ! /usr/local/bin/dropbox_uploader.sh -q list "\${RSB_FOLDER}" > /dev/null 2>&1 ; then
	    if ! /usr/local/bin/dropbox_uploader.sh mkdir "\${RSB_FOLDER}" >> \${LOGFILE} 2>&1 ; then
	        r_folder="/"
	    fi
	fi

	echo -n "\$( date ): "  >> "${USERHOME}/log/dropbox/\${file}--\${1}--upload.log"
	/usr/local/bin/dropbox_uploader.sh \
	    -f "${USERHOME}/.dropbox_uploader" upload "\${dir}/\${file}" "\${r_folder}/" \
	           >> "${USERHOME}/log/dropbox/\${file}--\${1}--upload.log" 2>&1
	EOF

    CHOWN_FILE "${USERNAME}":"${USERNAME}" "${USERHOME}/bin/upload-to-dropbox.sh"
    CHMOD_FILE 0700 "${USERHOME}/bin/upload-to-dropbox.sh"

    # Configure Deluge
    deluged_started=1
    if RUN_LOG "/usr/sbin/service deluged@${USERNAME} status 2>&1" ; then
        deluged_started=0
        SVC_STOP "deluged@${USERNAME}"
    fi
    #
    for __f in \
        "${DELUGE_APP_DIRECTORY}/disable_execute_plugin.py" \
        "${DELUGE_APP_DIRECTORY}/enable_execute_plugin.py" \
        "${DELUGE_APP_DIRECTORY}/execute.conf"
    do
        [ -e "${__f}" ] \
            && RM_FILES "${__f}"
    done
    #
    WGET "${SUPPORT}/deluge/disable_execute_plugin.py" \
         "${DELUGE_APP_DIRECTORY}/disable_execute_plugin.py" \
      || break
    WGET "${SUPPORT}/deluge/enable_execute_plugin.py" \
         "${DELUGE_APP_DIRECTORY}/enable_execute_plugin.py" \
      || break
    #
    cat <<-EOF > "${DELUGE_APP_DIRECTORY}/execute.conf"
	{
	  "file": 1, 
	  "format": 1
	}{
	  "commands": [
	    [
	      "d637317f80acebdc5cce24c5dfb6d0e8a562bc2e", 
	      "complete", 
	      "${USERHOME}/bin/upload-to-dropbox.sh"
	    ]
	  ]
	}
	EOF

    for f in "${USERHOME}/bin/upload-to-dropbox.sh" \
             "${DELUGE_APP_DIRECTORY}/disable_execute_plugin.py" \
             "${DELUGE_APP_DIRECTORY}/enable_execute_plugin.py" \
             "${DELUGE_APP_DIRECTORY}/execute.conf" \
     ; do
        CHOWN_FILE "${USERNAME}":"${USERNAME}" "${f}"
    done

    # Enable Deluge `Execute` plugin
    RUN_LOG "python ${DELUGE_APP_DIRECTORY}/enable_execute_plugin.py ${DELUGE_APP_DIRECTORY}"
    # Start `deluged` service
    [ ${deluged_started} ] \
        && SVC_START "deluged@${USERNAME}"
   

    main_rc=0
    break

done


SCRIPTEXIT
