#!/bin/bash

SCRIPT_VER="1.3"

APP="ruTorrent - Dropbox Upload"
APP_CATEGORY="Torrent Clients and Utilities"
APP_SCOPE="user"
APP_ENABLED="yes"
APP_VER="1.2"
DEPENDS="ruTorrent (rtorrent 0.9.2)|ruTorrent (rtorrent 0.9.3)|ruTorrent (rtorrent 0.9.4)|ruTorrent (rtorrent 0.9.6)|ruTorrent (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"

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_DIR "${USERNAME}":"${USERNAME}" "${USERHOME}/bin"
    CHMOD_FILE 0700 "${USERHOME}/bin/upload-to-dropbox.sh"


    # Configure rTorrent
    if [ -e "${USERHOME}/.rtorrent.rc" ] ; then
        if ! grep -e "^method\.set_key\s*=\s*event\.download\.finished,uploadtodropbox,\s*\"execute\s*=${USERHOME}/bin/upload-to-dropbox.sh,NA,\$d\.get_base_path=\"$" "${USERHOME}/.rtorrent.rc" >> "${LOGFILE}" 2>&1 ; then
            echo "method.set_key = event.download.finished,uploadtodropbox, \"execute =${USERHOME}/bin/upload-to-dropbox.sh,NA,\$d.get_base_path=\"" >> "${USERHOME}/.rtorrent.rc"
            if RUN_LOG "/usr/sbin/service rtorrent@${USERNAME} status 2>&1" ; then
                SVC_RESTART "rtorrent@${USERNAME}"
            fi
        fi
    fi
   

    main_rc=0
    break

done


SCRIPTEXIT
