diff --git a/documentation/README-upload_hosts.txt b/documentation/README-upload_hosts.txt index fe79b2b..18dd12e 100755 --- a/documentation/README-upload_hosts.txt +++ b/documentation/README-upload_hosts.txt @@ -35,21 +35,22 @@ Max Size . HostCode . Nickname . Notes # Short Retention ---------------------------------------------------------------------- Max Size . HostCode . Nickname . Notes # --------------------------------------------------------------------------------------- - 10GB nant fichiers.nantes.cloud ~1mo or less expiry, jirafrau - 10GB anarc anarchaserver.org ~1mo or less expiry, jirafrau - 10GB nlib netlib.re ~1mo or less expiry, jirafrau + 10GB nant fichiers.nantes.cloud ~1mo expiry, jirafrau + 10GB anarc anarchaserver.org ~1mo expiry, jirafrau + 10GB nlib netlib.re ~1mo expiry, jirafrau * 10GB raja uploadraja.com 4d inactive expiry - 5GB squid filesquid.net ~1mo or less expiry, jirafrau + 5GB squid filesquid.net ~1mo expiry, jirafrau 4GB tmpsh temp.sh 3d expiry - 1GB kaz depot.kaz.bzh ~1mo or less expiry, jirafrau - 512MB linx linxx.net ~1mo or less expiry, jirafrau - 500MB soy soyjak.download ~1mo or less expiry, jirafrau + 1GB kaz depot.kaz.bzh ~1mo expiry, jirafrau + 512MB linx linxx.net ~1mo expiry, jirafrau + 500MB soy soyjak.download ~1mo expiry, jirafrau 195MB dup dataupload.net ?? expiry 100MB nippy nippy* ?? expiry, (file, share, box, drive, space) 100MB dbree dbree.me ?? expiry - ?? harr files.harrault.fr ~1mo or less expiry, jirafrau - ?? acid dl.acid.fr ~1mo or less expiry, no resume, jirafrau - ?? fr4e sendfree4e.fr ~1wk or less expiry, jirafrau + ?? harr files.harrault.fr ~1mo expiry, jirafrau + ?? acid dl.acid.fr ~1mo expiry, no resume, jirafrau + ?? fr4e sendfree4e.fr ~1mo expiry, jirafrau + ?? skpr skrepr.com ~1mo expiry, jirafrau Failing (-): diff --git a/hosts/skrepr.sh b/hosts/skrepr.sh new file mode 100644 index 0000000..39ef554 --- /dev/null +++ b/hosts/skrepr.sh @@ -0,0 +1,31 @@ +#! Name: skrepr.sh +#! Author: kittykat +#! Version: 2024.11.14 +#! Desc: Add support for downloading and processing of urls for a new host +#! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder +#! +#! +#! ------------ REQUIRED SECTION --------------- +#! @[UPDATE] HostAndDomainRegexes: This string is loaded into mad.sh and allows dynamic handling of new url data +#! Format: '/HostCode/HostNick/HostFuncPrefix:HostDomainRegex@' +#! HostCode: (ie. 'fh' for filehaus -- cannot be used by other hosts) +#! HostNick: What is displayed throughout MAD output (ie. 'filehaus' -- "urls.txt has 10 filehaus.." will be displayed) +#! HostFuncPrefix: (ie. 'fh' -- fh_DownloadFile(), fh_FetchFileInfo() .. ) +#! * Note: Must begin with a letter a-z (functions beginning with numbers are no bueno) +#! HostDomainRegex: The regex used to verify matching urls +HostCode='skpr' +HostNick='skrepr.com' +HostFuncPrefix='direct' +HostUrls='transfer.skrepr.com' +HostDomainRegex='^(http|https)://(.*\.)?transfer\.skrepr\.com/' +#! +#! !! DO NOT UPDATE OR REMOVE !! +#! This merges the Required HostAndDomainRegexes into mad.sh +ListHostAndDomainRegexes=${ListHostAndDomainRegexes}'/'${HostCode}'/'${HostNick}'/'${HostFuncPrefix}'/'${HostUrls}':'${HostDomainRegex}'@' +#! +#! +#! ------------ (1) Host Main Download Function --------------- # +#! +#! This is a direct= download host, so all the functions are already in mad.sh +#! Since the HostFuncPrefix is defined above as "direct", nothing further needs to be done as it will +#! call the direct_DownloadFile() function already in mad.sh diff --git a/hosts/up_skrepr.sh b/hosts/up_skrepr.sh new file mode 100644 index 0000000..c03b54e --- /dev/null +++ b/hosts/up_skrepr.sh @@ -0,0 +1,127 @@ +#! Name: up_skrepr.sh +#! Author: kittykat +#! Version: 2024.11.14 +#! Desc: Add support for uploading files to transfer.skrepr.com +#! Info: Files are accessible at https://address/f.php?h=&p=1 +#! MaxSize: ?? +#! Expire: 1 Week +#! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder +#! +#! +#! ------------ REQUIRED SECTION --------------- +#! @[UPDATE] ListUploadHosts: This string is loaded into mad.sh and allows dynamic handling of new url data +#! Format: '/HostCode/HostNick/HostFuncPrefix@' +#! HostCode: (ie. 'fh' for filehaus -- cannot be used by other hosts) +#! HostNick: What is displayed throughout MAD output +#! HostFuncPrefix: ie. 'fh' -- fh_UploadFile() +#! * Note: Must begin with a letter a-z (functions beginning with numbers are no bueno) +HostCode='skpr' +HostNick='skrepr.com' +HostFuncPrefix='skpr' +#! +#! !! DO NOT UPDATE OR REMOVE !! +#! This merges the Required HostAndDomainRegexes into mad.sh +ListUploadHosts=${ListUploadHosts}'/'${HostCode}'/'${HostNick}'/'${HostFuncPrefix}'@' +#! +#! +#! Configurables +#! ------------- +#! +#! ------------ (1) Host Main Upload Function --------------- # +#! +#! @REQUIRED: Host Main Upload function +#! Must be named specifically as such: +#! _UploadFile() +skpr_UploadFile() { + local _hostCode=${1} + local filepath=${2} + local filecnt=${3} + local pline=${4} + local filename="${filepath##*/}" + warnAndRetryUnknownError=false + exitUploadError=false + exitUploadNotAvailable=false + fileAlreadyDone=false + tor_identity="${RANDOM}" + UploadTicket="${WorkDir}/.flocks/upload_${_hostCode}_${filepath//[^a-zA-Z0-9]/}" + finalAttempt="false" + for ((z=0; z<=$MaxUploadRetries; z++)); do + if [ $z -eq $MaxUploadRetries ] ; then + finalAttempt="true" + fi + trap "rm -f "${UploadTicket}"; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + if skpr_PostFile "${filepath}" "${_hostCode}" "${filename}" "${filecnt}" $((z+1)) $finalAttempt $pline ; then + return 0 + elif [ $z -lt $MaxUploadRetries ]; then + if [ "${fileAlreadyDone}" == "true" ] ; then + break + fi + if [[ "${warnAndRetryUnknownError}" == "true" ]] ; then + if [ "${DebugAllEnabled}" == "true" ] ; then + debugHtml "${filepath##*/}" "error" "Retry due to an unknown issue: attempt #$((z+1)) of ${MaxUploadRetries}" + fi + fi + if [[ "${exitUploadError}" == "true" || "${exitUploadNotAvailable}" == "true" ]] ; then + if [ "${DebugAllEnabled}" == "true" ] ; then + debugHtml "${filepath##*/}" "error" "Exit due to unrecoverable issue" + fi + rm -f "${UploadTicket}" + break + fi + echo -e "\n${YELLOW}A recoverable error occurred, retry attempt $((z+1))/${MaxUploadRetries}${NC}" + sleep 3 + fi + done + rm -f "${UploadTicket}" +} +#! +#! ----------- (2) Post File / Upload File Function --------------- # +#! +skpr_PostFile() { + local filepath=$1 + local _hostCode=$2 + local filename=$3 + local fileCnt=$4 + local retryCnt=$5 + local finalAttempt=$6 + local pline=${7} + UploadTicket="${WorkDir}/.flocks/upload_${_hostCode}_${filepath//[^a-zA-Z0-9]/}" + echo -e "[${YELLOW}${_hostCode}${NC}] Uploading ${GREEN}${filename}${NC}" + tor_identity="${RANDOM}" + PostUrlHost='https://transfer.skrepr.com/script.php' + arrFiles=("$filepath") + trap "rm -f ${UploadTicket}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + response=$(tor_curl_upload --insecure -i \ + -H "Content-Type: multipart/form-data" \ + -F "time=week" \ + -F "file=@${filepath}" \ + "${PostUrlHost}") + if [ "${DebugAllEnabled}" == "true" ] ; then + debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" + fi + if grep -Eqi ' 200 ' <<< "${response}" ; then + hash=$(echo "$response" | tail -2 | head -1) + hash=${hash//[$'\t\r\n']} + filesize=$(GetFileSize "$filepath" "false") + downloadLink="https://transfer.skrepr.com/f.php?h=${hash}&p=1" + echo -e "${GREEN}| Upload Success${NC}" + echo -e "| Size: ${BLUE}${filesize}${NC} bytes${NC}" + echo -e "| Link: ${YELLOW}${downloadLink}${NC}" + successUpload "$pline" "${filepath}" "${_hostCode}" "${filesize}" "${downloadLink}" "{$response}" + return 0 + else + err=$(grep -oPi '(?<=HTTP/).*?(?=$)' <<< "$response") + if [ "${finalAttempt}" == "true" ] ; then + printf "\\n" + echo -e "${RED}| Upload failed. Status: ${err}${NC}" + failedRetryUpload "$pline" "${filepath}" "${_hostCode}" "Failed to upload file" "Status: $err" + exitUploadError=true + return 1 + else + return 1 + fi + fi +} +#! +#! --------------- Host Extra Functions ------------------- # +#! diff --git a/mad.sh b/mad.sh index 07787cc..5f8020e 100644 --- a/mad.sh +++ b/mad.sh @@ -16,7 +16,7 @@ # - download1f.sh by GotGap # - hexlove.sh by AnonymousCapybara # - 1flove.sh provided by Sweeties and the NK crew -# - Developers of ZTools for tesing hosts and apis, and providing a helpful resource +# - Developers of ZTools for testing hosts and apis, and providing a helpful resource # # Special thanks for contributions and collaboration: # * beautfar - code fixes, bad html detection, several areas of code updates, and ideas @@ -31,9 +31,10 @@ # * klonkerz - feedback and suggestions, url only processing # * Everyone who provided feedback and helped test.. and those who wish to remain anonymous -ScriptVersion=2024.11.13 +ScriptVersion=2024.11.14 #================================================= # Recent Additions +# 2024.11.14 - [up_skrepr, skrepr] Add transfer.skrepr.com as upload and download host # 2024.11.13 - [up_pixeldrain] Add pixeldrain as an upload host # 2024.11.13 - [mad] Add pixeldrain apikey section to allow pd uploads # 2024.11.13 - [up_filesquid] Add "No password nor allowed IP" response handling diff --git a/uploads.txt b/uploads.txt index 27c4c8c..9f711f3 100755 --- a/uploads.txt +++ b/uploads.txt @@ -3,17 +3,19 @@ # Max Size . HostCode . Nickname ## Max Size . HostCode . Nickname ## Max Size . HostCode . Nickname # 300GB 1f 1fichier 100MB bow bowfile 250MB upev uploadev.org # 100MB dbree dbree 2GB dosya dosyaupload 300GB fh filehaus -# 10GB gofile gofile.io 20GB rz ranoz.gg 5GB uhive uploadhive +# 10GB gofile gofile.io 20GB rz ranoz.gg 5GB uhive uploadhive # 100MB nippy nippy* 100MB nofile nofile 5GB oshi oshi # 100MB so shareonline 5GB uflix uploadflix 100MB yolo yolobit -# 10GB anarc anarchaserver 1GB kaz depot.kaz.bzh 5GB squid filesquid -# 10GB nant nantes.cloud 500MB soy soyjak.download 512MB linx linxx.net -# 10GB nlib netlib.re 195MB dup dataupload.net 2GB axfc axfc.net +# 20GB pd pixeldrain 195MB dup dataupload.net 2GB axfc axfc.net # 10GB raja uploadraja.com 240MB ko kouploader.jp 4GB tmpsh temp.sh # 10GB tmpme tempfile.me 300MB trbo turbo.onion 100MB inno innocent.onion # 1GB ansh anonsharing.com 1GB torp TorUp.onion 4GB offcat offshore.cat -# 20GB pd pixeldrain +# Jirafraeu hosts +# 10GB anarc anarchaserver 1GB kaz depot.kaz.bzh 5GB squid filesquid +# 10GB nant nantes.cloud 500MB soy soyjak.download 512MB linx linxx.net +# 10GB nlib netlib.re # ?? fr4e sendfree4e.fr ?? harr harrault.fr ?? acid dl.acid.fr +# ?? skpr skrepr.com # (Require js -- do not use) # 4GB daily dailyuploads 1GB kraken krakenfiles 2GB hex hexload # 4GB bd bedrive.ru