# 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
# 2025.01.11 - [mad] Update direct head response handling
# 2025.01.11 - [ranoz] Add 404 Not found handling on head
# 2025.01.09 - [ranoz] Add handling of "NEXT_NOT_FOUND" response
# 2025.01.09 - [fileblade] Fix cdn url parsing
# 2025.01.08 - [up_pixeldrain] Fix success response from pixeldrain
# 2025.01.08 - [ramsgaard / up_ramsgaard] Add data.ramsgaard.me as upload / download host
# 2025.01.08 - [euromussels / up_euromussels] Add uploads.euromussels.eu as upload / download host
# 2025.01.07 - [up_fileland] Add fileland.io as upload host
# 2025.01.07 - [up_fireget] Add fireget.com as upload host
# 2025.01.06 - [uploadhive] Update the removed / gone response detection
# 2025.01.06 - [fileblade] Add "user does not allow free downloads over 100MB" response (and warnings)
# 2025.01.06 - [desiupload] Add desiupload as download host
# 2025.01.05 - [isupload] Fix filename detection
This commit is contained in:
kittykat 2025-01-16 07:54:05 +00:00
parent 30eedaf567
commit eeb8054960
Signed by: kittykat
GPG key ID: E3F1556620F70C3C
29 changed files with 1951 additions and 634 deletions

86
mad.sh
View file

@ -21,19 +21,37 @@
# Special thanks for contributions and collaboration:
# * beautfar - code fixes, bad html detection, several areas of code updates, and ideas
# * MisterFL - unzip after completion code and ideas
#
# Additional thanks for contributions:
# * stacktrough - click captcha workarounds and pixel websock code
# * oldfart - code suggestions, helpful feedback, clipmon implementation, WorkDir, fixes
# * zaire - feedback, suggestions, and encouragement
# * Rexmaxx - testing and bug reports
# * TinyPanties56 - feedback and suggestions
# * klonkerz - feedback and suggestions, url only processing
#
# Thanks for testing, feedback, bug reports, suggestions, and encouragement:
# * zaire, Rexmaxx, TinyPanties56, klonkerz, Stifflove
#
# * Everyone who provided feedback and helped test.. and those who wish to remain anonymous
ScriptVersion=2025.01.04
ScriptVersion=2025.01.14
#=================================================
# Recent Additions
# 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
# 2025.01.11 - [mad] Update direct head response handling
# 2025.01.11 - [ranoz] Add 404 Not found handling on head
# 2025.01.09 - [ranoz] Add handling of "NEXT_NOT_FOUND" response
# 2025.01.09 - [fileblade] Fix cdn url parsing
# 2025.01.08 - [up_pixeldrain] Fix success response from pixeldrain
# 2025.01.08 - [ramsgaard / up_ramsgaard] Add data.ramsgaard.me as upload / download host
# 2025.01.08 - [euromussels / up_euromussels] Add uploads.euromussels.eu as upload / download host
# 2025.01.07 - [up_fileland] Add fileland.io as upload host
# 2025.01.07 - [up_fireget] Add fireget.com as upload host
# 2025.01.06 - [uploadhive] Update the removed / gone response detection
# 2025.01.06 - [fileblade] Add "user does not allow free downloads over 100MB" response (and warnings)
# 2025.01.06 - [desiupload] Add desiupload as download host
# 2025.01.05 - [isupload] Fix filename detection
# 2024.01.03 - [gofile] Detect "Bulk download is a Premium feature" response (no children)
# 2025.01.02 - [up_axfc] Update PUT response check to handle kanji chars (remove)
# 2025.01.02 - [dashfile] Add response 'This file reached max downloads limit'. New cookie on captcha fail
@ -75,17 +93,6 @@ ScriptVersion=2025.01.04
# 2024.12.20 - [fileblade / up_fileblade] Add fileblade.com as upload / download host
# 2024.12.20 - [isupload / up_isupload] Add isupload.com as upload / download host
# 2024.12.15 - [mediafire] Add mediafire download link processing
# 2024.12.12 - [dictvm / up_dictvm] Add dictvm.org as upload / download host
# 2024.12.12 - [eddowding / up_eddowding] Add eddowding.com as upload / download host
# 2024.12.12 - [up_pixeldrain] Modify upload to use PUT
# 2024.12.12 - [mad] Update pixeldrain api key
# 2024.12.09 - [ranoz] Fix filenames with spaces
# 2024.11.29 - [innocent] Update to use tor_curl_request_extended for head/get
# 2024.11.29 - [quax] Update 404 Not found response handling
# 2024.11.27 - [up_ranoz] Modify download link to not use the upload url ticket link
# 2024.11.26 - [filehaus] Handle "404 Not found" on first instance
# 2024.11.25 - [up_moocloud / moocloud] Add moocloud.ch as an upload and download host
# 2024.11.24 - [uploadhive] Handle "Error creating download link" response -- do not mark Removed
# -- See ./documentation/!Changelog (Historical).txt for further changes -- #
@ -432,7 +439,8 @@ SetEnabledUploadHosts() {
lstEnabledUploadHosts+="up_isupload,up_kouploader,up_moocloud,up_nantes,up_offshorecat,up_oshi,"
lstEnabledUploadHosts+="up_pixeldrain,up_quax,up_ranoz,up_skrepr,up_torup,up_turboonion,up_uploadee,"
lstEnabledUploadHosts+="up_uploadhive,up_uploadraja,up_herbolistique,up_uploadbay,up_ateasystems,up_syspro,"
lstEnabledUploadHosts+="up_dashfile,up_anonfile"
lstEnabledUploadHosts+="up_dashfile,up_anonfile,up_fileland,up_fireget,up_euromussels,up_ramsgaard,"
lstEnabledUploadHosts+="up_gagneux"
elif [[ "$EnabledUploadHosts" == "online" ]] ; then
lstEnabledUploadHosts="up_1fichier,up_anonsharing,up_axfc,up_bedrive,up_bowfile,up_depotkaz,"
lstEnabledUploadHosts+="up_familleflender,up_fileblade,up_fileditch,up_firestorage,up_free4e,up_gofile,"
@ -440,7 +448,8 @@ SetEnabledUploadHosts() {
lstEnabledUploadHosts+="up_nippy,up_nofile,up_offshorecat,up_oshi,up_pixeldrain,up_quax,up_ranoz,"
lstEnabledUploadHosts+="up_shareonline,up_skrepr,up_torup,up_turboonion,up_uploadee,up_uploadhive,"
lstEnabledUploadHosts+="up_uploadraja,up_yolobit,up_herbolistique,up_uploadbay,up_ateasystems,up_syspro,"
lstEnabledUploadHosts+="up_dashfile,up_anonfile"
lstEnabledUploadHosts+="up_dashfile,up_anonfile,up_fileland,up_fireget,up_euromussels,up_ramsgaard,"
lstEnabledUploadHosts+="up_gagneux"
fi
}
SetEnabledDownloadHosts() {
@ -451,7 +460,8 @@ SetEnabledDownloadHosts() {
lstEnabledDownloadHosts+="gofile,harrault,innocent,isupload,lainsafe,lainsafe_onion,linxx,mediafire,"
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"
lstEnabledDownloadHosts+="youdbox,herbolistique,uploadbay,ateasystems,syspro,dashfile,anonfile,desiupload,"
lstEnabledDownloadHosts+="fileland,fireget,euromussels,ramsgaard,uwabaki,gagneux"
elif [[ "$EnabledDownloadHosts" == "online" ]] ; then
lstEnabledDownloadHosts="1fichier,anonsharing,bedrive,biteblob,bowfile,click,cyssoux,"
lstEnabledDownloadHosts+="dailyuploads,dataupload,depotkaz,dictvm,dosya,downloadgg,eddowding,eternalhosting,"
@ -460,7 +470,8 @@ SetEnabledDownloadHosts() {
lstEnabledDownloadHosts+="lainsafe_onion,mediafire,moocloud,nantes,netlib,nippy,nofile,offshorecat,"
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"
lstEnabledDownloadHosts+="uploadbay,ateasystems,syspro,dashfile,anonfile,desiupload,fileland,fireget,"
lstEnabledDownloadHosts+="euromussels,ramsgaard,uwabaki,gagneux"
fi
}
GetRandomFiledotUser() {
@ -773,18 +784,21 @@ failedDownload() {
removedDownload() {
local url="${1//[$'\t\r\n']}"
local message=$(literalize_string "$2")
if [ ! -z $message ]; then
message=" $message"
fi
mkdir -p "${WorkDir}/downloads"
dateStamp=$(date '+%Y/%m/%d %H:%M:%S')
echo -e "$dateStamp [REMOVED] ${url}" >> "${WorkDir}/downloads/results.txt"
echo -e "$dateStamp [REMOVED] ${url}${message}" >> "${WorkDir}/downloads/results.txt"
mkdir -p "${WorkDir}/data"
dateStamp=$(date '+%Y/%m/%d %H:%M:%S')
echo -e "$dateStamp [REMOVED] url: ${url}, message: $message" >> "${WorkDir}/data/downloads_completed.txt"
echo -e "$dateStamp [REMOVED] url: ${url}, message:$message" >> "${WorkDir}/data/downloads_completed.txt"
if [ ! "$UrlOnly" == "true" ]; then
if [ "${AutoCommentOnCompletion}" == "true" ] ; then
sed -i -e "s>^$url.*>#& #REMOVED#>g" "${InputFile}" #processed url
sed -i -e "s>^${url/https:/http:}.*>#& #REMOVED#>g" "${InputFile}" #http (if changed)
sed -i -e "s>^direct=$url.*>#& #REMOVED#>g" "${InputFile}" #direct url http
sed -i -e "s>^direct=${url/https:/http:}.*>#& #REMOVED#>g" "${InputFile}" #direct url https
sed -i -e "s>^$url.*>#& #REMOVED#${message}>g" "${InputFile}" #processed url
sed -i -e "s>^${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #http (if changed)
sed -i -e "s>^direct=$url.*>#& #REMOVED#${message}>g" "${InputFile}" #direct url http
sed -i -e "s>^direct=${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #direct url https
else
sed -i -e "s>^$url.*>#&>g" "${InputFile}" #processed url
sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed)
@ -930,7 +944,7 @@ badUrlDownload() {
fi
mkdir -p "${WorkDir}/downloads"
dateStamp=$(date '+%Y/%m/%d %H:%M:%S')
echo -e "$dateStamp [BADURL] ${url}" >> "${WorkDir}/downloads/results.txt"
echo -e "$dateStamp [BADURL] ${url}${message}" >> "${WorkDir}/downloads/results.txt"
if [ ! "$UrlOnly" == "true" ]; then
if [ "${AutoCommentOnCompletion}" == "true" ] ; then
sed -i -e "s>^${url}.*>#& #BAD-URL#${message}>g" "${InputFile}" #processed url
@ -3184,7 +3198,7 @@ direct_FetchFileInfo() {
download_url="${download_url/https/http}"
fi
file_id=$(grep -oP '[^\/]*$' <<< "$file_url")
maxretries=2
maxretries=4
for ((j=1; j<=$maxretries; j++)); do
mkdir -p "${WorkDir}/.temp"
if ((j > 1)); then
@ -3231,14 +3245,16 @@ direct_FetchFileInfo() {
return 1
fi
if ! grep -Eqi 'HTTP/.*200|HTTP/.*302' <<< "${file_header}" ; then
hResponse=$(grep -oPi 'HTTP/.* \K.*$' <<< "${file_header}")
if ((j>=$maxretries)); then
hResponse=$(grep -oPi 'HTTP/.*? \K.*$' <<< "${file_header}")
if ((j>=maxretries)); then
printf "\\n"
echo -e "${RED}| Unexpected header response ($hResponse).${NC}"
echo -e "${RED}| Unexpected header response: ${hResponse}${NC}"
failedRetryDownload "${remote_url}" "Unexpected header response: ${hResponse}" ""
exitDownloadNotAvailable=true
return 1
else
printf "\\n"
echo -e "${YELLOW}| Unexpected header response ($hResponse). Retrying...${NC}"
echo -e "${YELLOW}| Unexpected header response: ${hResponse}. Retrying...${NC}"
continue
fi
fi
@ -3298,7 +3314,7 @@ direct_FetchFileInfo() {
filename=$(sanitize_file_or_folder_name "${filename}")
if [ -z "$filename" ]; then
printf "\\n"
echo -e "${RED}| Unexpected or no header response.${NC}"
echo -e "${RED}| Unexpected or no header response [no filename]${NC}"
return 1
fi
if [ -z $file_size_bytes ] ; then