# 2025.02.25 - [mad + allhosts] Re-engineer BadHtml scan to only scan the first 10kb of downloaded partials

# 2025.02.24 - [pixeldrain] Update "The file is IP limited" response handling retry
# 2025.02.22 - [blackcloud_onion] Add bcloud.onion download handling (url fixing)
# 2025.02.21 - [anonfile] Update cdn link parsing to handle new subdomains
# 2025.02.21 - [anonfile] Add download limit reached response handling
# 2025.02.21 - [anonfile] Update file info retrieval (head no longer responds)
# 2025.02.21 - [sendspace] Add sendspace.com as download host
# 2025.02.21 - [oshi / up_oshi] Revert /nossl/ changes for oshi.at (clearnet)
This commit is contained in:
kittykat 2025-02-26 12:00:57 +00:00
parent 6f338dec65
commit 83d17967d6
Signed by: kittykat
GPG key ID: E3F1556620F70C3C
54 changed files with 1316 additions and 822 deletions

54
mad.sh
View file

@ -30,9 +30,17 @@
#
# * Everyone who provided feedback and helped test.. and those who wish to remain anonymous
ScriptVersion=2025.02.20
ScriptVersion=2025.02.25
#=================================================
# Recent Additions
# 2025.02.25 - [mad + allhosts] Re-engineer BadHtml scan to only scan the first 10kb of downloaded partials
# 2025.02.24 - [pixeldrain] Update "The file is IP limited" response handling retry
# 2025.02.22 - [blackcloud_onion] Add bcloud.onion download handling (url fixing)
# 2025.02.21 - [anonfile] Update cdn link parsing to handle new subdomains
# 2025.02.21 - [anonfile] Add download limit reached response handling
# 2025.02.21 - [anonfile] Update file info retrieval (head no longer responds)
# 2025.02.21 - [sendspace] Add sendspace.com as download host
# 2025.02.21 - [oshi / up_oshi] Revert /nossl/ changes for oshi.at (clearnet)
# 2025.02.20 - [up_ranoz] Fixed parsing of ranoz upload link (cloudflare)
# 2025.02.20 - [sendnow] Better handling of sendnow new Tor ip blocking
# 2025.02.20 - [up_ranoz / up_uploadhive] Add obfuscation of .7z in multipart filename that was missing
@ -62,23 +70,6 @@ ScriptVersion=2025.02.20
# 2025.02.02 - [mad] Add function to handle urlencode of cyrillic / kanji / latin / etc
# 2025.02.02 - [ranoz] Fix handling filenames containing cyrillic / kanji / latin chars
# 2025.02.02 - [all] Reduced character processing for urlencode to special url characters
# 2025.01.30 - [isupload] Add handling of 404 Not Found on initial page fetch
# 2025.01.23 - [mad] Do not check for supported host on "direct=" lines
# 2025.01.19 - [fileditch] Add direct download url processing fileditchfiles.me (though they block Tor now)
# 2025.01.18 - [up_nantes] Update the post retention to "week" (host removed "month" option)
# 2025.01.18 - [mad] Updates to url_encode function and addition of conversion of utf8 to ascii function
# 2025.01.17 - [ranoz] Servers response to resume changed, set as no resume type for now
# 2025.01.17 - [uwabaki] Add download handling for uwabaki onion address urls
# 2025.01.16 - [ranoz] Fix filenames with unicode chars in the download url
# 2025.01.16 - [up_axfc] Move convert utf8 to ascii to mad function
# 2025.01.16 - [up_uwabaki] Add uwabaki.party as upload host (1GB, no expiration, no DMCA, no logs)
# 2025.01.14 - [gagneux / up_gagneux] Add fichier.gagneux.info as upload / download host
# 2025.01.14 - [uwabaki] Add uwabaki.party as download host
# 2025.01.14 - [fileblade] Additional retries and handling for blocked Tor ips (until alternative)
# 2025.01.13 - [ocr_captcha] Create imagemagick OCR function for testing without tesseract
# 2025.01.13 - [anonfile, dailyuploads] Update ocr call to use tesseract function
# 2025.01.13 - [up_anonfile] Modify to use new upload url
# 2025.01.12 - [ateasystems] Update 404 Not found response
# -- See ./documentation/!Changelog (Historical).txt for further changes -- #
@ -452,7 +443,8 @@ SetEnabledDownloadHosts() {
lstEnabledDownloadHosts+="moocloud,nantes,netlib,offshorecat,oshi,pixeldrain,quax,ranoz,skrepr,"
lstEnabledDownloadHosts+="tempfileme,tempsh,torup,turboonion,up2share,uploadee,uploadev,uploadhive,"
lstEnabledDownloadHosts+="youdbox,herbolistique,uploadbay,ateasystems,syspro,dashfile,anonfile,desiupload,"
lstEnabledDownloadHosts+="fileland,fireget,euromussels,ramsgaard,uwabaki,gagneux,sendnow"
lstEnabledDownloadHosts+="fileland,fireget,euromussels,ramsgaard,uwabaki,gagneux,sendnow,sendspace,"
lstEnabledDownloadHosts+="blackcloud_onion"
elif [[ "$EnabledDownloadHosts" == "online" ]] ; then
lstEnabledDownloadHosts="1fichier,anonsharing,bedrive,biteblob,bowfile,click,cyssoux,"
lstEnabledDownloadHosts+="dailyuploads,dataupload,depotkaz,dictvm,dosya,downloadgg,eddowding,eternalhosting,"
@ -462,7 +454,7 @@ SetEnabledDownloadHosts() {
lstEnabledDownloadHosts+="oshi,pixeldrain,quax,ranoz,shareonline,skrepr,tempfileme,tempsh,torup,"
lstEnabledDownloadHosts+="turboonion,up2share,uploadee,uploadev,uploadhive,yolobit,youdbox,herbolistique,"
lstEnabledDownloadHosts+="uploadbay,ateasystems,syspro,dashfile,anonfile,desiupload,fileland,fireget,"
lstEnabledDownloadHosts+="euromussels,ramsgaard,uwabaki,gagneux,sendnow"
lstEnabledDownloadHosts+="euromussels,ramsgaard,uwabaki,gagneux,sendnow,sendspace,blackcloud_onion"
fi
}
GetRandomFiledotUser() {
@ -2783,13 +2775,19 @@ CheckNoHtml() {
local cde_remote_url=$1
local cde_filename=$2
local cde_file_path=$3
if [[ -f "${cde_file_path}" ]] ; then
badHtml=$(grep -aoPi '^.*(</HTML>|</script>|content-type|:error|not found|too many connections).*$' "${cde_file_path}")
local partial_size=$4
local tmp_partial="${WorkDir}/.temp/${cde_filename}_${partial_size}.10kb.part"
local curr_filesize=$(stat --format="%s" "${cde_file_path}" | tr -d '[:space:]')
mkdir -p "${WorkDir}/.temp"
head -c "10240" > "$tmp_partial" < <(exec tail -c "$partial_size" "$cde_file_path")
if [[ -f "${cde_file_path}" ]] ; then
badHtml=$(grep -aoPi '^.*(</HTML>|</script>|content-type|:error|not found|too many connections).*$' "${tmp_partial}")
if [[ "$badHtml" == "" ]]; then
rm -f "${tmp_partial}"
return 0
else
if [[ "${DebugAllEnabled}" == "true" ]] ; then
cp "$cde_file_path" "${WorkDir}/.debug/$cde_filename.htmldebug.txt"
cp "$tmp_partial" "${WorkDir}/.debug/$cde_filename.htmldebug.txt"
fi
if [[ "${DebugAllEnabled}" == "true" ]] ; then
echo -e ""
@ -2804,9 +2802,11 @@ CheckNoHtml() {
echo -e "BadHtml: ${badHtml}" >> "${WorkDir}/.debug/_err.log"
echo -e ""
fi
rm -f "${tmp_partial}"
return 1
fi
else
rm -f "${tmp_partial}"
return 0
fi
}
@ -3416,7 +3416,11 @@ direct_GetFile() {
continue
fi
fi
if CheckNoHtml "$remote_url" "$filename" "$file_path" ; then
received_file_size=0
if [[ -f "$file_path" ]] ; then
received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]')
fi
if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then
containsHtml=false
else
containsHtml=true
@ -3456,7 +3460,7 @@ direct_GetFile() {
if [[ -f "$file_path" ]] ; then
received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]')
fi
if CheckNoHtml "$remote_url" "$filename" "$file_path" ; then
if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then
containsHtml=false
else
containsHtml=true