From a62ac882de45570f787c826b03df59a000228fde Mon Sep 17 00:00:00 2001 From: kittykat Date: Tue, 11 Mar 2025 01:03:01 +0000 Subject: [PATCH] # 2025.03.08 - [mad] Only check files in determining which curl header # 2025.03.06 - [uploadhive] Disable global resume for servers without resume # 2025.03.05 - [torup] Fix torup removed response change from prior # 2025.03.05 - [mad] Add uploadflix.cc back to recommended download upload host lists (working) # 2025.03.04 - [mad] Add "expect100-timeout" header to curl upload request # 2025.03.03 - [up_sendspace] Add sendspace.com as upload host (300MB) # 2025.03.01 - [filedot] Fix filename parsing. Add 3 second wait for Free Download post. # 2025.03.01 - [torup] Update file removed response # 2025.02.26 - [uploadhive] Fix "Wrong IP" error -- use uploadhive.com IP4 address to connect for post # 2025.02.26 - [up_lainsafe] Fix retry terminal output --- .audit/mad-audit-curl.log | 259 +++++----- .audit/mad-audit-http.log | 157 +++--- .audit/mad-audit-tor_curl-details.log | 675 +++++++++++++------------- documentation/README-upload_hosts.txt | 1 + hosts/filedot.sh | 29 +- hosts/torup.sh | 7 +- hosts/up_lainsafe.sh | 3 +- hosts/up_sendspace.sh | 198 ++++++++ hosts/uploadhive.sh | 10 +- mad.sh | 46 +- uploads.txt | 2 +- 11 files changed, 817 insertions(+), 570 deletions(-) create mode 100644 hosts/up_sendspace.sh diff --git a/.audit/mad-audit-curl.log b/.audit/mad-audit-curl.log index f552149..2e57f62 100755 --- a/.audit/mad-audit-curl.log +++ b/.audit/mad-audit-curl.log @@ -1,4 +1,4 @@ -DateTime: 25.02.24 +DateTime: 25.03.08 Files: ./hosts/1fichier.sh @@ -131,6 +131,7 @@ Files: ./hosts/up_ramsgaard.sh ./hosts/up_ranoz.sh ./hosts/up_sendnow.sh +./hosts/up_sendspace.sh ./hosts/up_shareonline.sh ./hosts/up_skrepr.sh ./hosts/up_soyjak.sh @@ -291,11 +292,11 @@ _________________________________________________________________________ ./hosts/fileditch.sh:189: tor_curl_request --insecure "$download_url" --continue-at - --output "$file_path" ./hosts/filedot.sh:112: PAGE=$(tor_curl_request --insecure --max-time "$ConnectTimeout" -L -s \ ./hosts/filedot.sh:153: resp_login=$(tor_curl_request --insecure -L -s \ -./hosts/filedot.sh:240: response=$(tor_curl_request --insecure -L -s \ -./hosts/filedot.sh:320: response=$(tor_curl_request --insecure -L -s \ -./hosts/filedot.sh:406: file_header=$(tor_curl_request --insecure -L --head -s --referer "${fixed_url}" "$download_url") -./hosts/filedot.sh:499: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./hosts/filedot.sh:501: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" +./hosts/filedot.sh:241: response=$(tor_curl_request --insecure -L -s \ +./hosts/filedot.sh:321: response=$(tor_curl_request --insecure -L -s \ +./hosts/filedot.sh:407: file_header=$(tor_curl_request --insecure -L --head -s --referer "${fixed_url}" "$download_url") +./hosts/filedot.sh:500: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./hosts/filedot.sh:502: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" ./hosts/filehaus.sh:101: file_header=$(tor_curl_request_extended --insecure -L --head -s --referer "${remote_url//\.org/\.cc}" "$download_url") ./hosts/filehaus.sh:191: tor_curl_request_extended --insecure --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval --referer "$download_url" "$download_url" --continue-at - --output "$file_path" ./hosts/filehaus.sh:193: tor_curl_request_extended --insecure --referer "$download_url" "$download_url" --continue-at - --output "$file_path" @@ -397,11 +398,11 @@ _________________________________________________________________________ ./hosts/tempsh.sh:236: tor_curl_request --insecure -X POST \ ./hosts/tempsh.sh:250: tor_curl_request --insecure -X POST \ ./hosts/torup.sh:92: response=$(tor_curl_request --insecure -L -s \ -./hosts/torup.sh:188: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./hosts/torup.sh:190: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/torup.sh:196: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/torup.sh:203: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/torup.sh:219: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:191: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./hosts/torup.sh:193: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:199: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:206: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:222: tor_curl_request --insecure -L -G --no-alpn \ ./hosts/up2share.sh:91: response=$(tor_curl_request --insecure -L -s -b "${up2share_cookie_jar}" -c "${up2share_cookie_jar}" \ ./hosts/up2share.sh:144: response=$(tor_curl_request --insecure -L -s -b "${up2share_cookie_jar}" -c "${up2share_cookie_jar}" \ ./hosts/up2share.sh:195: file_header=$(tor_curl_request --insecure -L -s --head \ @@ -431,9 +432,9 @@ _________________________________________________________________________ ./hosts/uploadflix.sh:286: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" ./hosts/uploadflix.sh:288: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" ./hosts/uploadhive.sh:88: response=$(tor_curl_request --insecure -L -s "$remote_url") -./hosts/uploadhive.sh:135: response=$(tor_curl_request --insecure -L -s -X POST --data "$form_data" "$remote_url") -./hosts/uploadhive.sh:247: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./hosts/uploadhive.sh:249: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" +./hosts/uploadhive.sh:135: response=$(tor_curl_request --insecure -L -s -X POST --data "$form_data" "$remote_url" --connect-to uploadhive.com::172.67.130.243) +./hosts/uploadhive.sh:249: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./hosts/uploadhive.sh:251: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" ./hosts/up_1fichier.sh:107: response=$(tor_curl_request --insecure -L -s "https://1fichier.com/") ./hosts/up_1fichier.sh:180: response=$(tor_curl_upload --insecure -L \ ./hosts/up_anonfile.sh:102: response=$(tor_curl_upload --insecure -i \ @@ -463,7 +464,7 @@ _________________________________________________________________________ ./hosts/up_kouploader.sh:108: response=$(tor_curl_request --insecure -L -s -b "${ko_cookie_jar}" -c "${ko_cookie_jar}" "$PostUrlHost") ./hosts/up_kouploader.sh:132: response=$(tor_curl_upload --insecure -L -i \ ./hosts/up_kraken.sh:115: response=$(tor_curl_upload --insecure -i \ -./hosts/up_lainsafe.sh:111: response=$(tor_curl_upload --insecure -i \ +./hosts/up_lainsafe.sh:112: response=$(tor_curl_upload --insecure -i \ ./hosts/up_nippy.sh:125: response=$(tor_curl_upload --insecure -i \ ./hosts/up_nofile.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_offshorecat.sh:104: response=$(tor_curl_upload --insecure -i \ @@ -474,6 +475,8 @@ _________________________________________________________________________ ./hosts/up_ranoz.sh:156: response=$(tor_curl_upload --insecure -i -X PUT \ ./hosts/up_sendnow.sh:101: response=$(tor_curl_request --insecure -L -s 'https://send.now/upload') ./hosts/up_sendnow.sh:138: response=$(tor_curl_upload --insecure -i \ +./hosts/up_sendspace.sh:106: response=$(tor_curl_request --insecure -L -s -b "${ss_cookie_jar}" -c "${ss_cookie_jar}" "https://sendspace.com") +./hosts/up_sendspace.sh:160: response=$(tor_curl_upload --insecure -i -L \ ./hosts/up_shareonline.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_syspro.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_tempfileme.sh:102: response=$(tor_curl_upload --insecure -i \ @@ -495,119 +498,119 @@ _________________________________________________________________________ ./hosts/youdbox.sh:183: file_header=$(tor_curl_request --insecure -L --head -s --referer "${fixed_url}" "$download_url") ./hosts/youdbox.sh:276: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" ./hosts/youdbox.sh:278: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" -./mad.sh:91:UseTorCurlImpersonate=false -./mad.sh:387:tor_curl_request() { -./mad.sh:388: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:389: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:391: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:394:tor_curl_request_extended() { -./mad.sh:396: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:397: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:399: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:402:tor_curl_upload() { -./mad.sh:403: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:405: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" -./mad.sh:407: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" -./mad.sh:411: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" -./mad.sh:413: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" -./mad.sh:1415:install_curl_impersonate() { -./mad.sh:1417: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original dev, but it is relatively inactive." -./mad.sh:1418: echo -e "- Currently uses curl v8.1.1." -./mad.sh:1422: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." -./mad.sh:1423: echo -e "+ Currently uses curl v8.7.1" -./mad.sh:1427: PS3='Please select which curl_impersonate to install: ' -./mad.sh:1435: install_curl_impersonate_lwthiker_orig -./mad.sh:1439: install_curl_impersonate_lexiforest_fork -./mad.sh:1449:install_curl_impersonate_lwthiker_orig() { -./mad.sh:1453: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original curl_impersonate." -./mad.sh:1454: echo -e "+ Currently uses curl v8.1.1, and has low activity for updates" -./mad.sh:1457: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lwthiker curl_impersonate${NC} info from github...${NC}" -./mad.sh:1460: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1462: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1465: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1475: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { -./mad.sh:1477: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1480: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") -./mad.sh:1482: debugHtml "github" "head_inst_curlimp$j" "${file_header}" -./mad.sh:1530: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" -./mad.sh:1559: echo -e "| Extracting curl_impersonate..." -./mad.sh:1561: rm -f "${ScriptDir}"/curl* -./mad.sh:1562: mv "$extract_location/curl-impersonate-ff" "${ScriptDir}/" -./mad.sh:1563: mv "$extract_location/curl_ff109" "${ScriptDir}/" -./mad.sh:1564: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." -./mad.sh:1572:install_curl_impersonate_lexiforest_fork() { -./mad.sh:1576: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." -./mad.sh:1577: echo -e "+ Currently uses curl v8.7.1, and is patched for latest CVEs" -./mad.sh:1580: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lexiforest curl_impersonate fork${NC} info from github...${NC}" -./mad.sh:1583: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1585: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1588: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1598: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { -./mad.sh:1600: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1603: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") -./mad.sh:1605: debugHtml "github" "head_inst_curlimp$j" "${file_header}" -./mad.sh:1653: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" -./mad.sh:1682: echo -e "| Extracting curl_impersonate..." -./mad.sh:1684: rm -f "${ScriptDir}"/curl* -./mad.sh:1685: mv "$extract_location/curl-impersonate-chrome" "${ScriptDir}/" -./mad.sh:1686: mv "$extract_location/curl_chrome131" "${ScriptDir}/" -./mad.sh:1687: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." -./mad.sh:1849: echo -e ":${NC} ${GREEN}MAD${PINK} Audit${NC} : Reports usage of http & curl in scripts${PINK}${BLD} :" -./mad.sh:1857: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1858: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1867: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1869: echo -e "$maud_curl" -./mad.sh:1871: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1873: echo -e "$maud_torcurl" -./mad.sh:1885: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1886: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1895: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" -./mad.sh:1897: echo -e "$maud_curl" -./mad.sh:1899: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1901: echo -e "$maud_torcurl" -./mad.sh:1907: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1908: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1917: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1919: echo -e "$maud_curl" -./mad.sh:1921: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1923: echo -e "$maud_torcurl" -./mad.sh:2878: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:2879: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" -./mad.sh:2881: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" -./mad.sh:3053: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:3054: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" -./mad.sh:3056: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" -./mad.sh:3254: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ -./mad.sh:3261: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | -./mad.sh:3398: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" -./mad.sh:3455: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./mad.sh:3457: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" -./mad.sh:3655: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3662: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3733:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:3734: curl_impersonate=() -./mad.sh:3735: readarray -d $'' arrFiles < <(find "$ScriptDir" -maxdepth 1 -name "curl_*" -printf '%p\n' | sort -Vk1) -./mad.sh:3736: bFoundCurlHeader=false -./mad.sh:3740: curl_impersonate=($fil) -./mad.sh:3741: bFoundCurlHeader=true -./mad.sh:3745: if [[ "$bFoundCurlHeader" == "false" ]]; then -./mad.sh:3746: echo -e "${RED}[ERROR] Missing dependency \"curl-impersonate\"!${NC}" -./mad.sh:3749: echo -e "You'll need to download ${GREEN}\"curl-impersonate\"${NC}." -./mad.sh:3752: echo -e "The latest binary can be obtained on GitHub, search for \"curl-impersonate\"" -./mad.sh:3754: echo -e " 1. Visit the page of curl-impersonate and add \"/releases/latest/\" at end of URL." -./mad.sh:3758: echo -e " 4. Download archive ${GREEN}\"curl-impersonate-vX.Y.Z.x86_64-linux-gnu.tar.gz\"${YELLOW}." -./mad.sh:3759: echo -e " 5. Extract files ${GREEN}\"curl-impersonate-ff\"${NC} and ${GREEN}\"curl_ff109\"${NC} next to this script." -./mad.sh:3762: echo -e "run $0 install_curl_impersonate\\n" -./mad.sh:3764: yes_or_no "Do you wish to download and extract latest curl_impersonate (using tor+curl)?" && { -./mad.sh:3765: UseTorCurlImpersonate=false -./mad.sh:3766: install_curl_impersonate -./mad.sh:3850: echo -e "[${YELLOW}Install curl_impersonate${NC}]: Downloads the latest binary for curl_impersonate from github repo (3 choices)" -./mad.sh:3851: printf " %s install_curl_impersonate\\n" "$0" -./mad.sh:3929:elif [[ "$arg1" == "install_curl_impersonate" ]]; then -./mad.sh:3930: install_curl_impersonate -./mad.sh:3961:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:3962: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" -./mad.sh:3964: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:101:UseTorCurlImpersonate=false +./mad.sh:397:tor_curl_request() { +./mad.sh:398: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:399: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:401: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:404:tor_curl_request_extended() { +./mad.sh:406: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:407: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:409: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:412:tor_curl_upload() { +./mad.sh:413: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:415: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" +./mad.sh:417: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" +./mad.sh:421: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" +./mad.sh:423: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" +./mad.sh:1425:install_curl_impersonate() { +./mad.sh:1427: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original dev, but it is relatively inactive." +./mad.sh:1428: echo -e "- Currently uses curl v8.1.1." +./mad.sh:1432: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." +./mad.sh:1433: echo -e "+ Currently uses curl v8.7.1" +./mad.sh:1437: PS3='Please select which curl_impersonate to install: ' +./mad.sh:1445: install_curl_impersonate_lwthiker_orig +./mad.sh:1449: install_curl_impersonate_lexiforest_fork +./mad.sh:1459:install_curl_impersonate_lwthiker_orig() { +./mad.sh:1463: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original curl_impersonate." +./mad.sh:1464: echo -e "+ Currently uses curl v8.1.1, and has low activity for updates" +./mad.sh:1467: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lwthiker curl_impersonate${NC} info from github...${NC}" +./mad.sh:1470: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) +./mad.sh:1472: debugHtml "github" "lbf_inst_curlimp$j" "$response" +./mad.sh:1475: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") +./mad.sh:1485: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { +./mad.sh:1487: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1490: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") +./mad.sh:1492: debugHtml "github" "head_inst_curlimp$j" "${file_header}" +./mad.sh:1540: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1569: echo -e "| Extracting curl_impersonate..." +./mad.sh:1571: rm -f "${ScriptDir}"/curl* +./mad.sh:1572: mv "$extract_location/curl-impersonate-ff" "${ScriptDir}/" +./mad.sh:1573: mv "$extract_location/curl_ff109" "${ScriptDir}/" +./mad.sh:1574: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." +./mad.sh:1582:install_curl_impersonate_lexiforest_fork() { +./mad.sh:1586: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." +./mad.sh:1587: echo -e "+ Currently uses curl v8.7.1, and is patched for latest CVEs" +./mad.sh:1590: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lexiforest curl_impersonate fork${NC} info from github...${NC}" +./mad.sh:1593: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) +./mad.sh:1595: debugHtml "github" "lbf_inst_curlimp$j" "$response" +./mad.sh:1598: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") +./mad.sh:1608: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { +./mad.sh:1610: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1613: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") +./mad.sh:1615: debugHtml "github" "head_inst_curlimp$j" "${file_header}" +./mad.sh:1663: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1692: echo -e "| Extracting curl_impersonate..." +./mad.sh:1694: rm -f "${ScriptDir}"/curl* +./mad.sh:1695: mv "$extract_location/curl-impersonate-chrome" "${ScriptDir}/" +./mad.sh:1696: mv "$extract_location/curl_chrome131" "${ScriptDir}/" +./mad.sh:1697: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." +./mad.sh:1859: echo -e ":${NC} ${GREEN}MAD${PINK} Audit${NC} : Reports usage of http & curl in scripts${PINK}${BLD} :" +./mad.sh:1867: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1868: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1877: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1879: echo -e "$maud_curl" +./mad.sh:1881: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1883: echo -e "$maud_torcurl" +./mad.sh:1895: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1896: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1905: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" +./mad.sh:1907: echo -e "$maud_curl" +./mad.sh:1909: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1911: echo -e "$maud_torcurl" +./mad.sh:1917: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1918: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1927: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1929: echo -e "$maud_curl" +./mad.sh:1931: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1933: echo -e "$maud_torcurl" +./mad.sh:2888: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:2889: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:2891: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:3063: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:3064: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:3066: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:3264: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ +./mad.sh:3271: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | +./mad.sh:3408: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" +./mad.sh:3465: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./mad.sh:3467: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" +./mad.sh:3665: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3672: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3743:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:3744: curl_impersonate=() +./mad.sh:3745: readarray -d $'' arrFiles < <(find "$ScriptDir" -maxdepth 1 -type f -name "curl_*" -printf '%p\n' | sort -Vk1) +./mad.sh:3746: bFoundCurlHeader=false +./mad.sh:3750: curl_impersonate=($fil) +./mad.sh:3751: bFoundCurlHeader=true +./mad.sh:3755: if [[ "$bFoundCurlHeader" == "false" ]]; then +./mad.sh:3756: echo -e "${RED}[ERROR] Missing dependency \"curl-impersonate\"!${NC}" +./mad.sh:3759: echo -e "You'll need to download ${GREEN}\"curl-impersonate\"${NC}." +./mad.sh:3762: echo -e "The latest binary can be obtained on GitHub, search for \"curl-impersonate\"" +./mad.sh:3764: echo -e " 1. Visit the page of curl-impersonate and add \"/releases/latest/\" at end of URL." +./mad.sh:3768: echo -e " 4. Download archive ${GREEN}\"curl-impersonate-vX.Y.Z.x86_64-linux-gnu.tar.gz\"${YELLOW}." +./mad.sh:3769: echo -e " 5. Extract files ${GREEN}\"curl-impersonate-ff\"${NC} and ${GREEN}\"curl_ff109\"${NC} next to this script." +./mad.sh:3772: echo -e "run $0 install_curl_impersonate\\n" +./mad.sh:3774: yes_or_no "Do you wish to download and extract latest curl_impersonate (using tor+curl)?" && { +./mad.sh:3775: UseTorCurlImpersonate=false +./mad.sh:3776: install_curl_impersonate +./mad.sh:3860: echo -e "[${YELLOW}Install curl_impersonate${NC}]: Downloads the latest binary for curl_impersonate from github repo (3 choices)" +./mad.sh:3861: printf " %s install_curl_impersonate\\n" "$0" +./mad.sh:3939:elif [[ "$arg1" == "install_curl_impersonate" ]]; then +./mad.sh:3940: install_curl_impersonate +./mad.sh:3971:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:3972: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:3974: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" ./plugins/pjscloud.sh:44: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then ./plugins/pjscloud.sh:45: response=$("${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" \ ./plugins/pjscloud.sh:53: response=$(curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" \ diff --git a/.audit/mad-audit-http.log b/.audit/mad-audit-http.log index 9c39085..4a6fbcb 100755 --- a/.audit/mad-audit-http.log +++ b/.audit/mad-audit-http.log @@ -1,4 +1,4 @@ -DateTime: 25.02.24 +DateTime: 25.03.08 Files: ./hosts/1fichier.sh @@ -131,6 +131,7 @@ Files: ./hosts/up_ramsgaard.sh ./hosts/up_ranoz.sh ./hosts/up_sendnow.sh +./hosts/up_sendspace.sh ./hosts/up_shareonline.sh ./hosts/up_skrepr.sh ./hosts/up_soyjak.sh @@ -204,10 +205,10 @@ _________________________________________________________________________ ./hosts/filedot.sh:160: -H "Origin: https://filedot.to" \ ./hosts/filedot.sh:162: -H "Referer: https://filedot.to/login.html" \ ./hosts/filedot.sh:170: -d "$form_data" "https://filedot.to/") -./hosts/filedot.sh:247: -H "Origin: https://filedot.to" \ -./hosts/filedot.sh:249: -H "Referer: https://filedot.to/login.html" \ -./hosts/filedot.sh:257: -d "$form_data" "https://filedot.to/") -./hosts/filedot.sh:327: -H "Origin: https://filedot.to" \ +./hosts/filedot.sh:248: -H "Origin: https://filedot.to" \ +./hosts/filedot.sh:250: -H "Referer: https://filedot.to/login.html" \ +./hosts/filedot.sh:258: -d "$form_data" "https://filedot.to/") +./hosts/filedot.sh:328: -H "Origin: https://filedot.to" \ ./hosts/firestorage.sh:155: if grep -Eqi ')' <<< "$response") ./hosts/gofile.sh:84: badUrlDownload "${remote_url}" "Expect format: http://*.gofile.io/d/xxxxx" @@ -374,9 +375,9 @@ _________________________________________________________________________ ./hosts/up_kraken.sh:107: local ar_HUP[8]='https://uploads9.krakenfiles.com/_uploader/gallery/upload' ./hosts/up_kraken.sh:108: local ar_HUP[9]='https://uploads10.krakenfiles.com/_uploader/gallery/upload' ./hosts/up_kraken.sh:126: downloadLink="https://krakenfiles.com/view/${hash}/file.html" -./hosts/up_lainsafe.sh:108: PostUrlHost='https://pomf.lain.la/upload.php?output=html' -./hosts/up_lainsafe.sh:129: elif grep -Eqi 'a href="https://pomf2.lain.la/f/' <<< "${response}" ; then -./hosts/up_lainsafe.sh:130: url=$(grep -oPi -m 1 '(?<=a href=").*?(?=">https:)' <<< "$response") +./hosts/up_lainsafe.sh:109: PostUrlHost='https://pomf.lain.la/upload.php?output=html' +./hosts/up_lainsafe.sh:130: elif grep -Eqi 'a href="https://pomf2.lain.la/f/' <<< "${response}" ; then +./hosts/up_lainsafe.sh:131: url=$(grep -oPi -m 1 '(?<=a href=").*?(?=">https:)' <<< "$response") ./hosts/up_linxx.sh:37: jira_PostUrlHost='https://linxx.net/upload/script.php' ./hosts/up_linxx.sh:40: jira_downloadLinkPrefix='https://linxx.net/upload/f.php?h=' ./hosts/up_moocloud.sh:37: jira_PostUrlHost='https://file.tools.moocloud.ch/script.php' @@ -413,6 +414,8 @@ _________________________________________________________________________ ./hosts/up_sendnow.sh:115: elif grep -Eqi 'action="https://.*send\.now/cgi-bin/upload\.cgi\?upload_type\=' <<< "$response"; then ./hosts/up_sendnow.sh:131: local ar_HUP[0]="https://u7324.send.now/cgi-bin/upload.cgi?upload_type=file&utype=anon" ./hosts/up_sendnow.sh:157: downloadLink="https://send.now/${hash}" +./hosts/up_sendspace.sh:106: response=$(tor_curl_request --insecure -L -s -b "${ss_cookie_jar}" -c "${ss_cookie_jar}" "https://sendspace.com") +./hosts/up_sendspace.sh:172: if grep -Eqi 'aria-label="Download Page Link" href="https://www.sendspace.com' <<< "${response}" ; then ./hosts/up_shareonline.sh:99: PostUrlHost='https://ns07.zipcluster.com/upload.php' ./hosts/up_skrepr.sh:37: jira_PostUrlHost='https://transfer.skrepr.com/script.php' ./hosts/up_skrepr.sh:40: jira_downloadLinkPrefix='https://transfer.skrepr.com/f.php?h=' @@ -450,75 +453,75 @@ _________________________________________________________________________ ./hosts/up_uwabaki.sh:111: if grep -Eqi 'File uploaded: ^${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #http (if changed) -./mad.sh:713: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #direct url https -./mad.sh:716: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:718: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:739: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #http (if changed) -./mad.sh:741: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #direct url https -./mad.sh:744: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:746: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:767: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #http (if changed) -./mad.sh:769: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #direct url https -./mad.sh:772: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:774: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:796: sed -i -e "s>^${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #http (if changed) -./mad.sh:798: sed -i -e "s>^direct=${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #direct url https -./mad.sh:801: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:803: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:827: sed -i -e "s>^${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #http (if changed) -./mad.sh:829: sed -i -e "s>^direct=${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #direct url https -./mad.sh:832: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:834: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:860: sed -i -e "s>^${url/https:/http:}.*>${url}|${newfilename}>g" "${InputFile}" #http (if changed) -./mad.sh:862: sed -i -e "s>^direct=${url/https:/http:}.*>direct=${url}|${newfilename}>g" "${InputFile}" #direct url https -./mad.sh:882: sed -i -e "s%^${url/https:/http:}.*%${newurl//[[:space:]]/$'\\\n'}%g" "${InputFile}" #http (if changed) -./mad.sh:903: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #http (if changed) -./mad.sh:905: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #direct url https -./mad.sh:908: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:910: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:926: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #http (if changed) -./mad.sh:928: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #direct url https -./mad.sh:931: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:933: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:952: sed -i -e "s>^${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #http (if changed) -./mad.sh:954: sed -i -e "s>^direct=${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #direct url https -./mad.sh:957: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:959: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:979: sed -i -e "s>^${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #http (if changed) -./mad.sh:981: sed -i -e "s>^direct=${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #direct url https -./mad.sh:984: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:986: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:1004: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #http (if changed) -./mad.sh:1006: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #direct url https -./mad.sh:1009: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:1011: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:1030: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (File exists and is too large--retry or delete from downloads)>g" "${InputFile}" #http (if changed) -./mad.sh:1032: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (File exists and is too large--retry or delete from downloads)>g" "${InputFile}" #direct url https -./mad.sh:1035: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:1037: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:1460: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1477: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1583: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1600: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1863: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1891: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1913: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:3237: if grep -Eqi '.onion' <<< "$download_url" && grep -Eqi 'https://' <<< "$download_url" ; then -./mad.sh:3772:arg2="$2" # auto, filelist, -./mad.sh:3869: echo -e " - http://oshi.at/abcd/origAABB.rar|My specified file.part1.rar" -./mad.sh:3871: echo -e " - direct=http://pomf2.lain.la/f/abcd00zz.7z" -./mad.sh:3873: echo -e ' - ie. direct=http://somehost.onion/abcD|filename.part1.rar' -./mad.sh:4092: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4093: remote_url=${remote_url/http:/https:} -./mad.sh:4114: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4115: remote_url=${remote_url/http:/https:} -./mad.sh:4481: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4482: remote_url=${remote_url/http:/https:} -./mad.sh:4540: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4541: remote_url=${remote_url/http:/https:} -./mad.sh:4567: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4568: remote_url=${remote_url/http:/https:} +./mad.sh:721: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #http (if changed) +./mad.sh:723: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #direct url https +./mad.sh:726: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:728: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:749: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #http (if changed) +./mad.sh:751: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #direct url https +./mad.sh:754: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:756: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:777: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #http (if changed) +./mad.sh:779: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #direct url https +./mad.sh:782: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:784: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:806: sed -i -e "s>^${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #http (if changed) +./mad.sh:808: sed -i -e "s>^direct=${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #direct url https +./mad.sh:811: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:813: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:837: sed -i -e "s>^${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #http (if changed) +./mad.sh:839: sed -i -e "s>^direct=${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #direct url https +./mad.sh:842: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:844: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:870: sed -i -e "s>^${url/https:/http:}.*>${url}|${newfilename}>g" "${InputFile}" #http (if changed) +./mad.sh:872: sed -i -e "s>^direct=${url/https:/http:}.*>direct=${url}|${newfilename}>g" "${InputFile}" #direct url https +./mad.sh:892: sed -i -e "s%^${url/https:/http:}.*%${newurl//[[:space:]]/$'\\\n'}%g" "${InputFile}" #http (if changed) +./mad.sh:913: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #http (if changed) +./mad.sh:915: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #direct url https +./mad.sh:918: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:920: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:936: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #http (if changed) +./mad.sh:938: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #direct url https +./mad.sh:941: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:943: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:962: sed -i -e "s>^${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #http (if changed) +./mad.sh:964: sed -i -e "s>^direct=${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #direct url https +./mad.sh:967: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:969: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:989: sed -i -e "s>^${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #http (if changed) +./mad.sh:991: sed -i -e "s>^direct=${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #direct url https +./mad.sh:994: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:996: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:1014: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #http (if changed) +./mad.sh:1016: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #direct url https +./mad.sh:1019: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:1021: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:1040: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (File exists and is too large--retry or delete from downloads)>g" "${InputFile}" #http (if changed) +./mad.sh:1042: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (File exists and is too large--retry or delete from downloads)>g" "${InputFile}" #direct url https +./mad.sh:1045: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:1047: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:1470: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) +./mad.sh:1487: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1593: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) +./mad.sh:1610: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1873: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1901: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1923: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:3247: if grep -Eqi '.onion' <<< "$download_url" && grep -Eqi 'https://' <<< "$download_url" ; then +./mad.sh:3782:arg2="$2" # auto, filelist, +./mad.sh:3879: echo -e " - http://oshi.at/abcd/origAABB.rar|My specified file.part1.rar" +./mad.sh:3881: echo -e " - direct=http://pomf2.lain.la/f/abcd00zz.7z" +./mad.sh:3883: echo -e ' - ie. direct=http://somehost.onion/abcD|filename.part1.rar' +./mad.sh:4102: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4103: remote_url=${remote_url/http:/https:} +./mad.sh:4124: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4125: remote_url=${remote_url/http:/https:} +./mad.sh:4491: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4492: remote_url=${remote_url/http:/https:} +./mad.sh:4550: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4551: remote_url=${remote_url/http:/https:} +./mad.sh:4577: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4578: remote_url=${remote_url/http:/https:} ./plugins/pjscloud.sh:51: "https://PhantomJScloud.com/api/browser/v2/$RandomPjsKey/" & sleep 8s; kill -HUP $! 2>/dev/null) ./plugins/pjscloud.sh:59: "https://PhantomJScloud.com/api/browser/v2/$RandomPjsKey/" & sleep 8s; kill -HUP $! 2>/dev/null) diff --git a/.audit/mad-audit-tor_curl-details.log b/.audit/mad-audit-tor_curl-details.log index 168a821..95c0a55 100755 --- a/.audit/mad-audit-tor_curl-details.log +++ b/.audit/mad-audit-tor_curl-details.log @@ -1,4 +1,4 @@ -DateTime: 25.02.24 +DateTime: 25.03.08 Files: ./hosts/1fichier.sh @@ -131,6 +131,7 @@ Files: ./hosts/up_ramsgaard.sh ./hosts/up_ranoz.sh ./hosts/up_sendnow.sh +./hosts/up_sendspace.sh ./hosts/up_shareonline.sh ./hosts/up_skrepr.sh ./hosts/up_soyjak.sh @@ -1341,55 +1342,55 @@ _________________________________________________________________________ ./hosts/filedot.sh:162: -H "Referer: https://filedot.to/login.html" \ ./hosts/filedot.sh:163: -H "DNT: 1" \ -- -./hosts/filedot.sh:240: response=$(tor_curl_request --insecure -L -s \ -./hosts/filedot.sh:241: -H "Host: filedot.to" \ -./hosts/filedot.sh:242: -H "User-Agent: $RandomUA" \ -./hosts/filedot.sh:243: -H "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ -./hosts/filedot.sh:244: -H "Accept-Language: en-US,en;q=0.5" \ -./hosts/filedot.sh:245: -H "Accept-Encoding: gzip, deflate, br" \ -./hosts/filedot.sh:246: -H "Content-Type: application/x-www-form-urlencoded" \ -./hosts/filedot.sh:247: -H "Origin: https://filedot.to" \ -./hosts/filedot.sh:248: -H "Connection: keep-alive" \ -./hosts/filedot.sh:249: -H "Referer: https://filedot.to/login.html" \ -./hosts/filedot.sh:250: -H "DNT: 1" \ +./hosts/filedot.sh:241: response=$(tor_curl_request --insecure -L -s \ +./hosts/filedot.sh:242: -H "Host: filedot.to" \ +./hosts/filedot.sh:243: -H "User-Agent: $RandomUA" \ +./hosts/filedot.sh:244: -H "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ +./hosts/filedot.sh:245: -H "Accept-Language: en-US,en;q=0.5" \ +./hosts/filedot.sh:246: -H "Accept-Encoding: gzip, deflate, br" \ +./hosts/filedot.sh:247: -H "Content-Type: application/x-www-form-urlencoded" \ +./hosts/filedot.sh:248: -H "Origin: https://filedot.to" \ +./hosts/filedot.sh:249: -H "Connection: keep-alive" \ +./hosts/filedot.sh:250: -H "Referer: https://filedot.to/login.html" \ +./hosts/filedot.sh:251: -H "DNT: 1" \ -- -./hosts/filedot.sh:320: response=$(tor_curl_request --insecure -L -s \ -./hosts/filedot.sh:321: -H "Host: filedot.to" \ -./hosts/filedot.sh:322: -H "User-Agent: $RandomUA" \ -./hosts/filedot.sh:323: -H "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ -./hosts/filedot.sh:324: -H "Accept-Language: en-US,en;q=0.5" \ -./hosts/filedot.sh:325: -H "Accept-Encoding: gzip, deflate, br" \ -./hosts/filedot.sh:326: -H "Content-Type: application/x-www-form-urlencoded" \ -./hosts/filedot.sh:327: -H "Origin: https://filedot.to" \ -./hosts/filedot.sh:328: -H "Connection: keep-alive" \ -./hosts/filedot.sh:329: -H "Referer: $remote_url" \ -./hosts/filedot.sh:330: -H "DNT: 1" \ +./hosts/filedot.sh:321: response=$(tor_curl_request --insecure -L -s \ +./hosts/filedot.sh:322: -H "Host: filedot.to" \ +./hosts/filedot.sh:323: -H "User-Agent: $RandomUA" \ +./hosts/filedot.sh:324: -H "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ +./hosts/filedot.sh:325: -H "Accept-Language: en-US,en;q=0.5" \ +./hosts/filedot.sh:326: -H "Accept-Encoding: gzip, deflate, br" \ +./hosts/filedot.sh:327: -H "Content-Type: application/x-www-form-urlencoded" \ +./hosts/filedot.sh:328: -H "Origin: https://filedot.to" \ +./hosts/filedot.sh:329: -H "Connection: keep-alive" \ +./hosts/filedot.sh:330: -H "Referer: $remote_url" \ +./hosts/filedot.sh:331: -H "DNT: 1" \ -- -./hosts/filedot.sh:406: file_header=$(tor_curl_request --insecure -L --head -s --referer "${fixed_url}" "$download_url") -./hosts/filedot.sh:407: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./hosts/filedot.sh:408: debugHtml "${remote_url##*/}" "fdot_head_$j" "download_url: ${download_url}"$'\n'"${file_header}" -./hosts/filedot.sh:409: fi -./hosts/filedot.sh:410: if [[ -z $file_header ]] ; then -./hosts/filedot.sh:411: if [[ $j == $maxfetchretries ]] ; then -./hosts/filedot.sh:412: printf "\\n" -./hosts/filedot.sh:413: echo -e "${RED}| Failed to extract file info.${NC}" -./hosts/filedot.sh:414: warnAndRetryUnknownError=true -./hosts/filedot.sh:415: if [[ "${finalAttempt}" == "true" ]] ; then -./hosts/filedot.sh:416: failedRetryDownload "${remote_url}" "" "" +./hosts/filedot.sh:407: file_header=$(tor_curl_request --insecure -L --head -s --referer "${fixed_url}" "$download_url") +./hosts/filedot.sh:408: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/filedot.sh:409: debugHtml "${remote_url##*/}" "fdot_head_$j" "download_url: ${download_url}"$'\n'"${file_header}" +./hosts/filedot.sh:410: fi +./hosts/filedot.sh:411: if [[ -z $file_header ]] ; then +./hosts/filedot.sh:412: if [[ $j == $maxfetchretries ]] ; then +./hosts/filedot.sh:413: printf "\\n" +./hosts/filedot.sh:414: echo -e "${RED}| Failed to extract file info [1]${NC}" +./hosts/filedot.sh:415: warnAndRetryUnknownError=true +./hosts/filedot.sh:416: if [[ "${finalAttempt}" == "true" ]] ; then +./hosts/filedot.sh:417: failedRetryDownload "${remote_url}" "Failed to extract file info [1]" "" -- -./hosts/filedot.sh:499: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./hosts/filedot.sh:500: else -./hosts/filedot.sh:501: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" -./hosts/filedot.sh:502: fi -./hosts/filedot.sh:503: received_file_size=0 -./hosts/filedot.sh:504: if [[ -f "$file_path" ]] ; then -./hosts/filedot.sh:505: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') -./hosts/filedot.sh:506: fi -./hosts/filedot.sh:507: if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then -./hosts/filedot.sh:508: containsHtml=false -./hosts/filedot.sh:509: else -./hosts/filedot.sh:510: containsHtml=true -./hosts/filedot.sh:511: fi +./hosts/filedot.sh:500: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./hosts/filedot.sh:501: else +./hosts/filedot.sh:502: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" +./hosts/filedot.sh:503: fi +./hosts/filedot.sh:504: received_file_size=0 +./hosts/filedot.sh:505: if [[ -f "$file_path" ]] ; then +./hosts/filedot.sh:506: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./hosts/filedot.sh:507: fi +./hosts/filedot.sh:508: if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then +./hosts/filedot.sh:509: containsHtml=false +./hosts/filedot.sh:510: else +./hosts/filedot.sh:511: containsHtml=true +./hosts/filedot.sh:512: fi -- ./hosts/filehaus.sh:101: file_header=$(tor_curl_request_extended --insecure -L --head -s --referer "${remote_url//\.org/\.cc}" "$download_url") ./hosts/filehaus.sh:102: if [[ "${DebugAllEnabled}" == "true" ]] ; then @@ -2281,47 +2282,47 @@ _________________________________________________________________________ ./hosts/torup.sh:96: debugHtml "${remote_url##*/}" "torp_fetch$i" "${response}" ./hosts/torup.sh:97: fi ./hosts/torup.sh:98: if [[ -z $response ]] ; then -./hosts/torup.sh:99: if [[ $i == $maxfetchretries ]] ; then -./hosts/torup.sh:100: printf "\\n" -./hosts/torup.sh:101: echo -e "${RED}| Failed to extract download url [1]${NC}" -./hosts/torup.sh:102: warnAndRetryUnknownError=true +./hosts/torup.sh:99: rm -f "${torp_cookie_jar}"; +./hosts/torup.sh:100: if [[ $i == $maxfetchretries ]] ; then +./hosts/torup.sh:101: printf "\\n" +./hosts/torup.sh:102: echo -e "${RED}| Failed to extract download url [1]${NC}" -- -./hosts/torup.sh:190: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/torup.sh:191: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ -./hosts/torup.sh:192: -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ -./hosts/torup.sh:193: -H "Referer: $fixed_url" \ -./hosts/torup.sh:194: "$download_url" --output "$file_path" -./hosts/torup.sh:195: else -./hosts/torup.sh:196: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/torup.sh:197: -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ -./hosts/torup.sh:198: -H "Referer: $fixed_url" \ -./hosts/torup.sh:199: "$download_url" --output "$file_path" -./hosts/torup.sh:200: fi -./hosts/torup.sh:201: else -./hosts/torup.sh:202: if [[ "${RateMonitorEnabled}" == "true" ]]; then -./hosts/torup.sh:203: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/torup.sh:204: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ -./hosts/torup.sh:205: -H "User-Agent: $RandomUA" \ -./hosts/torup.sh:206: -H "Referer: $fixed_url" \ -./hosts/torup.sh:207: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ -./hosts/torup.sh:208: -H "Accept-Language: en-US,en;q=0.5" \ -./hosts/torup.sh:209: -H "Accept-Encoding: gzip, deflate, br" \ -./hosts/torup.sh:210: -H "Connection: keep-alive" \ -./hosts/torup.sh:211: -H "Upgrade-Insecure-Requests: 1" \ -./hosts/torup.sh:212: -H "Sec-Fetch-Dest: document" \ -./hosts/torup.sh:213: -H "Sec-Fetch-Mode: navigate" \ +./hosts/torup.sh:193: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:194: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ +./hosts/torup.sh:195: -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ +./hosts/torup.sh:196: -H "Referer: $fixed_url" \ +./hosts/torup.sh:197: "$download_url" --output "$file_path" +./hosts/torup.sh:198: else +./hosts/torup.sh:199: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:200: -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ +./hosts/torup.sh:201: -H "Referer: $fixed_url" \ +./hosts/torup.sh:202: "$download_url" --output "$file_path" +./hosts/torup.sh:203: fi +./hosts/torup.sh:204: else +./hosts/torup.sh:205: if [[ "${RateMonitorEnabled}" == "true" ]]; then +./hosts/torup.sh:206: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:207: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ +./hosts/torup.sh:208: -H "User-Agent: $RandomUA" \ +./hosts/torup.sh:209: -H "Referer: $fixed_url" \ +./hosts/torup.sh:210: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ +./hosts/torup.sh:211: -H "Accept-Language: en-US,en;q=0.5" \ +./hosts/torup.sh:212: -H "Accept-Encoding: gzip, deflate, br" \ +./hosts/torup.sh:213: -H "Connection: keep-alive" \ +./hosts/torup.sh:214: -H "Upgrade-Insecure-Requests: 1" \ +./hosts/torup.sh:215: -H "Sec-Fetch-Dest: document" \ +./hosts/torup.sh:216: -H "Sec-Fetch-Mode: navigate" \ -- -./hosts/torup.sh:219: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/torup.sh:220: -H "User-Agent: $RandomUA" \ -./hosts/torup.sh:221: -H "Referer: $fixed_url" \ -./hosts/torup.sh:222: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ -./hosts/torup.sh:223: -H "Accept-Language: en-US,en;q=0.5" \ -./hosts/torup.sh:224: -H "Accept-Encoding: gzip, deflate, br" \ -./hosts/torup.sh:225: -H "Connection: keep-alive" \ -./hosts/torup.sh:226: -H "Upgrade-Insecure-Requests: 1" \ -./hosts/torup.sh:227: -H "Sec-Fetch-Dest: document" \ -./hosts/torup.sh:228: -H "Sec-Fetch-Mode: navigate" \ -./hosts/torup.sh:229: -H "Sec-Fetch-Site: same-origin" \ +./hosts/torup.sh:222: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:223: -H "User-Agent: $RandomUA" \ +./hosts/torup.sh:224: -H "Referer: $fixed_url" \ +./hosts/torup.sh:225: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ +./hosts/torup.sh:226: -H "Accept-Language: en-US,en;q=0.5" \ +./hosts/torup.sh:227: -H "Accept-Encoding: gzip, deflate, br" \ +./hosts/torup.sh:228: -H "Connection: keep-alive" \ +./hosts/torup.sh:229: -H "Upgrade-Insecure-Requests: 1" \ +./hosts/torup.sh:230: -H "Sec-Fetch-Dest: document" \ +./hosts/torup.sh:231: -H "Sec-Fetch-Mode: navigate" \ +./hosts/torup.sh:232: -H "Sec-Fetch-Site: same-origin" \ -- ./hosts/up2share.sh:91: response=$(tor_curl_request --insecure -L -s -b "${up2share_cookie_jar}" -c "${up2share_cookie_jar}" \ ./hosts/up2share.sh:92: -w "\n\nHTTP_CODE: %{http_code}\nEFFECTIVE_URL: %{url_effective}\n" \ @@ -2593,7 +2594,7 @@ _________________________________________________________________________ ./hosts/uploadhive.sh:97: if [[ "${finalAttempt}" == "true" ]] ; then ./hosts/uploadhive.sh:98: failedRetryDownload "${remote_url}" "" "" -- -./hosts/uploadhive.sh:135: response=$(tor_curl_request --insecure -L -s -X POST --data "$form_data" "$remote_url") +./hosts/uploadhive.sh:135: response=$(tor_curl_request --insecure -L -s -X POST --data "$form_data" "$remote_url" --connect-to uploadhive.com::172.67.130.243) ./hosts/uploadhive.sh:136: if [[ "${DebugAllEnabled}" == "true" ]] ; then ./hosts/uploadhive.sh:137: debugHtml "${remote_url##*/}" "uhive_post" "${response}" ./hosts/uploadhive.sh:138: fi @@ -2605,19 +2606,19 @@ _________________________________________________________________________ ./hosts/uploadhive.sh:144: fi ./hosts/uploadhive.sh:145: return 1 -- -./hosts/uploadhive.sh:247: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./hosts/uploadhive.sh:248: else -./hosts/uploadhive.sh:249: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" -./hosts/uploadhive.sh:250: fi -./hosts/uploadhive.sh:251: received_file_size=0 -./hosts/uploadhive.sh:252: if [[ -f "$file_path" ]] ; then -./hosts/uploadhive.sh:253: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') -./hosts/uploadhive.sh:254: fi -./hosts/uploadhive.sh:255: if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then -./hosts/uploadhive.sh:256: containsHtml=false -./hosts/uploadhive.sh:257: else -./hosts/uploadhive.sh:258: containsHtml=true -./hosts/uploadhive.sh:259: fi +./hosts/uploadhive.sh:249: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./hosts/uploadhive.sh:250: else +./hosts/uploadhive.sh:251: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" +./hosts/uploadhive.sh:252: fi +./hosts/uploadhive.sh:253: received_file_size=0 +./hosts/uploadhive.sh:254: if [[ -f "$file_path" ]] ; then +./hosts/uploadhive.sh:255: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./hosts/uploadhive.sh:256: fi +./hosts/uploadhive.sh:257: if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then +./hosts/uploadhive.sh:258: containsHtml=false +./hosts/uploadhive.sh:259: else +./hosts/uploadhive.sh:260: containsHtml=true +./hosts/uploadhive.sh:261: fi -- ./hosts/up_1fichier.sh:107: response=$(tor_curl_request --insecure -L -s "https://1fichier.com/") ./hosts/up_1fichier.sh:108: if [[ "${DebugAllEnabled}" == "true" ]] ; then @@ -2967,17 +2968,17 @@ _________________________________________________________________________ ./hosts/up_kraken.sh:124: hash=$(grep -oPi '(?<="hash":").*?(?=")' <<< "$response") ./hosts/up_kraken.sh:125: filesize=$(GetFileSize "$filepath" "false") -- -./hosts/up_lainsafe.sh:111: response=$(tor_curl_upload --insecure -i \ -./hosts/up_lainsafe.sh:112: -H "Content-Type: multipart/form-data" \ -./hosts/up_lainsafe.sh:113: -F "files[]=@${arrFiles[@]}" \ -./hosts/up_lainsafe.sh:114: "${PostUrlHost}") -./hosts/up_lainsafe.sh:115: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./hosts/up_lainsafe.sh:116: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" -./hosts/up_lainsafe.sh:117: fi -./hosts/up_lainsafe.sh:118: if [[ -z $response ]] || grep -Eqi 'HTTP/2 403|403 Forbidden' <<< "${response}" ; then -./hosts/up_lainsafe.sh:119: if [[ "${finalAttempt}" == "true" ]] ; then -./hosts/up_lainsafe.sh:120: err=$(grep -oPi '(?<=HTTP/).*?(?=$)' <<< "$response") -./hosts/up_lainsafe.sh:121: printf "\\n" +./hosts/up_lainsafe.sh:112: response=$(tor_curl_upload --insecure -i \ +./hosts/up_lainsafe.sh:113: -H "Content-Type: multipart/form-data" \ +./hosts/up_lainsafe.sh:114: -F "files[]=@${arrFiles[@]}" \ +./hosts/up_lainsafe.sh:115: "${PostUrlHost}") +./hosts/up_lainsafe.sh:116: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/up_lainsafe.sh:117: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" +./hosts/up_lainsafe.sh:118: fi +./hosts/up_lainsafe.sh:119: if [[ -z $response ]] || grep -Eqi 'HTTP/2 403|403 Forbidden' <<< "${response}" ; then +./hosts/up_lainsafe.sh:120: if [[ "${finalAttempt}" == "true" ]] ; then +./hosts/up_lainsafe.sh:121: err=$(grep -oPi '(?<=HTTP/).*?(?=$)' <<< "$response") +./hosts/up_lainsafe.sh:122: printf "\\n" -- ./hosts/up_nippy.sh:125: response=$(tor_curl_upload --insecure -i \ ./hosts/up_nippy.sh:126: -H "Content-Type: multipart/form-data" \ @@ -3099,6 +3100,30 @@ _________________________________________________________________________ ./hosts/up_sendnow.sh:147: -F "upload=Start upload" \ ./hosts/up_sendnow.sh:148: -F "keepalive=1" \ -- +./hosts/up_sendspace.sh:106: response=$(tor_curl_request --insecure -L -s -b "${ss_cookie_jar}" -c "${ss_cookie_jar}" "https://sendspace.com") +./hosts/up_sendspace.sh:107: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/up_sendspace.sh:108: debugHtml "${remote_url##*/}" "${_hostCode}_upload_fetch$i" "${response}" +./hosts/up_sendspace.sh:109: fi +./hosts/up_sendspace.sh:110: if [[ -z $response ]] ; then +./hosts/up_sendspace.sh:111: rm -f "${ss_cookie_jar}"; +./hosts/up_sendspace.sh:112: if [[ $i == $maxfetchretries ]] ; then +./hosts/up_sendspace.sh:113: printf "\\n" +./hosts/up_sendspace.sh:114: echo -e "${RED}| Failed to extract download upload info${NC}" +./hosts/up_sendspace.sh:115: failedRetryUpload "$pline" "${filepath}" "${_hostCode}" "Failed to upload file." "No response" +./hosts/up_sendspace.sh:116: exitUploadError=true +-- +./hosts/up_sendspace.sh:160: response=$(tor_curl_upload --insecure -i -L \ +./hosts/up_sendspace.sh:161: -H "Content-Type: multipart/form-data" \ +./hosts/up_sendspace.sh:162: -F "terms=1" \ +./hosts/up_sendspace.sh:163: -F "utype=anon" \ +./hosts/up_sendspace.sh:164: -F "signature=$post_sig" \ +./hosts/up_sendspace.sh:165: -F "file[]=" \ +./hosts/up_sendspace.sh:166: -F "upload_file[]=@$filepath" \ +./hosts/up_sendspace.sh:167: -b "${ss_cookie_jar}" -c "${ss_cookie_jar}" \ +./hosts/up_sendspace.sh:168: "${PostUrlHost}") +./hosts/up_sendspace.sh:169: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/up_sendspace.sh:170: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" +-- ./hosts/up_shareonline.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_shareonline.sh:103: -H "Content-Type: multipart/form-data" \ ./hosts/up_shareonline.sh:104: -F "file[]=@${arrFiles[@]}" \ @@ -3341,235 +3366,235 @@ _________________________________________________________________________ ./hosts/youdbox.sh:287: containsHtml=true ./hosts/youdbox.sh:288: fi -- -./mad.sh:387:tor_curl_request() { -./mad.sh:388: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:389: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:390: else -./mad.sh:391: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:392: fi -./mad.sh:393:} -./mad.sh:394:tor_curl_request_extended() { -./mad.sh:395: randomtimeout=$((30 + RANDOM % (60 - 30))) -./mad.sh:396: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:397: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:398: else -./mad.sh:399: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:400: fi -./mad.sh:401:} -./mad.sh:402:tor_curl_upload() { -./mad.sh:403: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:404: if [[ "${RateMonitorEnabled}" == "true" ]]; then -./mad.sh:405: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" -./mad.sh:406: else -./mad.sh:407: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" -./mad.sh:408: fi -./mad.sh:409: else -./mad.sh:410: if [[ "${RateMonitorEnabled}" == "true" ]]; then -./mad.sh:411: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" -./mad.sh:412: else +./mad.sh:397:tor_curl_request() { +./mad.sh:398: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:399: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:400: else +./mad.sh:401: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:402: fi +./mad.sh:403:} +./mad.sh:404:tor_curl_request_extended() { +./mad.sh:405: randomtimeout=$((30 + RANDOM % (60 - 30))) +./mad.sh:406: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:407: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:408: else +./mad.sh:409: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:410: fi +./mad.sh:411:} +./mad.sh:412:tor_curl_upload() { +./mad.sh:413: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:414: if [[ "${RateMonitorEnabled}" == "true" ]]; then +./mad.sh:415: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" +./mad.sh:416: else +./mad.sh:417: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" +./mad.sh:418: fi +./mad.sh:419: else +./mad.sh:420: if [[ "${RateMonitorEnabled}" == "true" ]]; then +./mad.sh:421: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" +./mad.sh:422: else -- -./mad.sh:1460: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1461: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./mad.sh:1462: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1463: fi -./mad.sh:1464: if [[ ! -z "$response" ]]; then -./mad.sh:1465: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1466: latestBinaryDate=$(grep -oPi -m 1 '(?<== MaxDownloadRetries)) ; then -./mad.sh:1539: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" -./mad.sh:1540: exit 1 +./mad.sh:1540: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1541: received_file_size=0 +./mad.sh:1542: if [[ -f "$file_path" ]] ; then +./mad.sh:1543: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:1544: fi +./mad.sh:1545: if ((received_file_size == file_size_bytes)) ; then +./mad.sh:1546: break +./mad.sh:1547: elif ((received_file_size < file_size_bytes)) ; then +./mad.sh:1548: if ((j >= MaxDownloadRetries)) ; then +./mad.sh:1549: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" +./mad.sh:1550: exit 1 -- -./mad.sh:1583: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1584: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./mad.sh:1585: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1586: fi -./mad.sh:1587: if [[ ! -z "$response" ]]; then -./mad.sh:1588: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1589: latestBinaryDate=$(grep -oPi -m 1 '(?<== MaxDownloadRetries)) ; then -./mad.sh:1662: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" -./mad.sh:1663: exit 1 +./mad.sh:1663: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1664: received_file_size=0 +./mad.sh:1665: if [[ -f "$file_path" ]] ; then +./mad.sh:1666: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:1667: fi +./mad.sh:1668: if ((received_file_size == file_size_bytes)) ; then +./mad.sh:1669: break +./mad.sh:1670: elif ((received_file_size < file_size_bytes)) ; then +./mad.sh:1671: if ((j >= MaxDownloadRetries)) ; then +./mad.sh:1672: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" +./mad.sh:1673: exit 1 -- -./mad.sh:1858: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1859: echo -e "Files:" -./mad.sh:1860: echo -e "${BLUE}${fil}${NC}" -./mad.sh:1861: echo -e "" -./mad.sh:1862: echo -e "" -./mad.sh:1863: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1864: echo -e "_________________________________________________________________________" -./mad.sh:1865: echo -e "$maud_http" -./mad.sh:1866: echo -e "" -./mad.sh:1867: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1868: echo -e "_________________________________________________________________________" +./mad.sh:1868: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1869: echo -e "Files:" +./mad.sh:1870: echo -e "${BLUE}${fil}${NC}" +./mad.sh:1871: echo -e "" +./mad.sh:1872: echo -e "" +./mad.sh:1873: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1874: echo -e "_________________________________________________________________________" +./mad.sh:1875: echo -e "$maud_http" +./mad.sh:1876: echo -e "" +./mad.sh:1877: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1878: echo -e "_________________________________________________________________________" -- -./mad.sh:1871: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1872: echo -e "_________________________________________________________________________" -./mad.sh:1873: echo -e "$maud_torcurl" -./mad.sh:1874: echo -e "" -./mad.sh:1875: echo -e "" -./mad.sh:1876: done -./mad.sh:1877: else -./mad.sh:1878: cd "$ScriptDir" -./mad.sh:1879: readarray -d $'' arrFiles < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) -./mad.sh:1880: cd "$WorkDir" -./mad.sh:1881: readarray -d $'' arrFiles2 < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) +./mad.sh:1881: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1882: echo -e "_________________________________________________________________________" +./mad.sh:1883: echo -e "$maud_torcurl" +./mad.sh:1884: echo -e "" +./mad.sh:1885: echo -e "" +./mad.sh:1886: done +./mad.sh:1887: else +./mad.sh:1888: cd "$ScriptDir" +./mad.sh:1889: readarray -d $'' arrFiles < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) +./mad.sh:1890: cd "$WorkDir" +./mad.sh:1891: readarray -d $'' arrFiles2 < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) -- -./mad.sh:1886: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1887: echo -e "Files:" -./mad.sh:1888: echo -e "${BLUE}${fil}${NC}" -./mad.sh:1889: echo -e "" -./mad.sh:1890: echo -e "" -./mad.sh:1891: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1892: echo -e "_________________________________________________________________________" -./mad.sh:1893: echo -e "$maud_http" -./mad.sh:1894: echo -e "" -./mad.sh:1895: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" -./mad.sh:1896: echo -e "_________________________________________________________________________" +./mad.sh:1896: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1897: echo -e "Files:" +./mad.sh:1898: echo -e "${BLUE}${fil}${NC}" +./mad.sh:1899: echo -e "" +./mad.sh:1900: echo -e "" +./mad.sh:1901: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1902: echo -e "_________________________________________________________________________" +./mad.sh:1903: echo -e "$maud_http" +./mad.sh:1904: echo -e "" +./mad.sh:1905: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" +./mad.sh:1906: echo -e "_________________________________________________________________________" -- -./mad.sh:1899: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1900: echo -e "_________________________________________________________________________" -./mad.sh:1901: echo -e "$maud_torcurl" -./mad.sh:1902: echo -e "" -./mad.sh:1903: done -./mad.sh:1904: for fil in "${arrFiles2[@]}"; -./mad.sh:1905: do -./mad.sh:1906: maud_http=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei '(http|https):') -./mad.sh:1907: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1908: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1909: echo -e "Files:" -./mad.sh:1910: echo -e "${BLUE}${fil}${NC}" -./mad.sh:1911: echo -e "" +./mad.sh:1909: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1910: echo -e "_________________________________________________________________________" +./mad.sh:1911: echo -e "$maud_torcurl" ./mad.sh:1912: echo -e "" -./mad.sh:1913: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1914: echo -e "_________________________________________________________________________" -./mad.sh:1915: echo -e "$maud_http" -./mad.sh:1916: echo -e "" -./mad.sh:1917: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1918: echo -e "_________________________________________________________________________" +./mad.sh:1913: done +./mad.sh:1914: for fil in "${arrFiles2[@]}"; +./mad.sh:1915: do +./mad.sh:1916: maud_http=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei '(http|https):') +./mad.sh:1917: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1918: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1919: echo -e "Files:" +./mad.sh:1920: echo -e "${BLUE}${fil}${NC}" +./mad.sh:1921: echo -e "" +./mad.sh:1922: echo -e "" +./mad.sh:1923: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1924: echo -e "_________________________________________________________________________" +./mad.sh:1925: echo -e "$maud_http" +./mad.sh:1926: echo -e "" +./mad.sh:1927: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1928: echo -e "_________________________________________________________________________" -- -./mad.sh:1921: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1922: echo -e "_________________________________________________________________________" -./mad.sh:1923: echo -e "$maud_torcurl" -./mad.sh:1924: echo -e "" -./mad.sh:1925: done -./mad.sh:1926: fi -./mad.sh:1927:} -./mad.sh:1928:madStatus() { -./mad.sh:1929: local InputFile="$1" -./mad.sh:1930: if [[ "$arg1" == "status" ]] ; then -./mad.sh:1931: clear +./mad.sh:1931: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1932: echo -e "_________________________________________________________________________" +./mad.sh:1933: echo -e "$maud_torcurl" +./mad.sh:1934: echo -e "" +./mad.sh:1935: done +./mad.sh:1936: fi +./mad.sh:1937:} +./mad.sh:1938:madStatus() { +./mad.sh:1939: local InputFile="$1" +./mad.sh:1940: if [[ "$arg1" == "status" ]] ; then +./mad.sh:1941: clear -- -./mad.sh:3254: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ -./mad.sh:3255: -H "Connection: keep-alive" \ -./mad.sh:3256: -w 'EffectiveUrl=%{url_effective}' \ -./mad.sh:3257: "$download_url") -./mad.sh:3258: else -./mad.sh:3259: printf "| Retrieving Head: attempt #$j" -./mad.sh:3260: rm -f "${WorkDir}/.temp/directhead" -./mad.sh:3261: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | -./mad.sh:3262: tee "${WorkDir}/.temp/directhead" & -./mad.sh:3263: sleep 6 -./mad.sh:3264: [ -s "${WorkDir}/.temp/directhead" ] -./mad.sh:3265: kill $! 2>/dev/null -./mad.sh:3266: ) -./mad.sh:3267: if [[ ! -f "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" ]]; then -./mad.sh:3268: touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" -./mad.sh:3269: fi +./mad.sh:3264: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ +./mad.sh:3265: -H "Connection: keep-alive" \ +./mad.sh:3266: -w 'EffectiveUrl=%{url_effective}' \ +./mad.sh:3267: "$download_url") +./mad.sh:3268: else +./mad.sh:3269: printf "| Retrieving Head: attempt #$j" ./mad.sh:3270: rm -f "${WorkDir}/.temp/directhead" -./mad.sh:3271: fi +./mad.sh:3271: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | +./mad.sh:3272: tee "${WorkDir}/.temp/directhead" & +./mad.sh:3273: sleep 6 +./mad.sh:3274: [ -s "${WorkDir}/.temp/directhead" ] +./mad.sh:3275: kill $! 2>/dev/null +./mad.sh:3276: ) +./mad.sh:3277: if [[ ! -f "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" ]]; then +./mad.sh:3278: touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" +./mad.sh:3279: fi +./mad.sh:3280: rm -f "${WorkDir}/.temp/directhead" +./mad.sh:3281: fi -- -./mad.sh:3398: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" -./mad.sh:3399: rc=$? -./mad.sh:3400: if ((rc != 0 )) ; then -./mad.sh:3401: printf "${RED}Download Failed (bad exit status).${NC}" -./mad.sh:3402: if [[ -f ${file_path} ]]; then -./mad.sh:3403: printf "${YELLOW} Partial removed...${NC}" -./mad.sh:3404: printf "\n\n" -./mad.sh:3405: rm -f "${file_path}" -./mad.sh:3406: else -./mad.sh:3407: printf "\n\n" -./mad.sh:3408: fi +./mad.sh:3408: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" +./mad.sh:3409: rc=$? +./mad.sh:3410: if ((rc != 0 )) ; then +./mad.sh:3411: printf "${RED}Download Failed (bad exit status).${NC}" +./mad.sh:3412: if [[ -f ${file_path} ]]; then +./mad.sh:3413: printf "${YELLOW} Partial removed...${NC}" +./mad.sh:3414: printf "\n\n" +./mad.sh:3415: rm -f "${file_path}" +./mad.sh:3416: else +./mad.sh:3417: printf "\n\n" +./mad.sh:3418: fi -- -./mad.sh:3455: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./mad.sh:3456: else -./mad.sh:3457: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" -./mad.sh:3458: fi -./mad.sh:3459: received_file_size=0 -./mad.sh:3460: if [[ -f "$file_path" ]] ; then -./mad.sh:3461: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') -./mad.sh:3462: fi -./mad.sh:3463: if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then -./mad.sh:3464: containsHtml=false -./mad.sh:3465: else -./mad.sh:3466: containsHtml=true -./mad.sh:3467: fi +./mad.sh:3465: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./mad.sh:3466: else +./mad.sh:3467: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" +./mad.sh:3468: fi +./mad.sh:3469: received_file_size=0 +./mad.sh:3470: if [[ -f "$file_path" ]] ; then +./mad.sh:3471: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:3472: fi +./mad.sh:3473: if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then +./mad.sh:3474: containsHtml=false +./mad.sh:3475: else +./mad.sh:3476: containsHtml=true +./mad.sh:3477: fi -- -./mad.sh:3655: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3656: -H "Content-Type: multipart/form-data" \ -./mad.sh:3657: -F "key=" \ -./mad.sh:3658: -F "time=$jira_timeval" \ -./mad.sh:3659: -F "file=@${filepath}" \ -./mad.sh:3660: "${jira_PostUrlHost}") -./mad.sh:3661: else -./mad.sh:3662: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3663: -H "Content-Type: multipart/form-data" \ -./mad.sh:3664: -F "key=" \ -./mad.sh:3665: -F "time=$jira_timeval" \ -./mad.sh:3666: -F "files[]=@${arrFiles[@]}" \ -./mad.sh:3667: "${jira_PostUrlHost}") -./mad.sh:3668: fi -./mad.sh:3669: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./mad.sh:3670: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${jira_PostUrlHost}"$'\n'"${response}" -./mad.sh:3671: fi -./mad.sh:3672: if grep -Eqi ' 200 ' <<< "${response}" ; then +./mad.sh:3665: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3666: -H "Content-Type: multipart/form-data" \ +./mad.sh:3667: -F "key=" \ +./mad.sh:3668: -F "time=$jira_timeval" \ +./mad.sh:3669: -F "file=@${filepath}" \ +./mad.sh:3670: "${jira_PostUrlHost}") +./mad.sh:3671: else +./mad.sh:3672: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3673: -H "Content-Type: multipart/form-data" \ +./mad.sh:3674: -F "key=" \ +./mad.sh:3675: -F "time=$jira_timeval" \ +./mad.sh:3676: -F "files[]=@${arrFiles[@]}" \ +./mad.sh:3677: "${jira_PostUrlHost}") +./mad.sh:3678: fi +./mad.sh:3679: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./mad.sh:3680: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${jira_PostUrlHost}"$'\n'"${response}" +./mad.sh:3681: fi +./mad.sh:3682: if grep -Eqi ' 200 ' <<< "${response}" ; then diff --git a/documentation/README-upload_hosts.txt b/documentation/README-upload_hosts.txt index 95ecc77..9fdf666 100755 --- a/documentation/README-upload_hosts.txt +++ b/documentation/README-upload_hosts.txt @@ -32,6 +32,7 @@ Max Size . HostCode . Nickname . Notes 512MB anon anonfile.de ?? expiry 500MB fland fileland.io 180d expiry 400MB dash dashfile.net ?? expiry + 300MB ss sendspace.com ?? expiry 300MB trbo turbo.onion ~40d expiry 256MB qx qu.ax ?? expiry - 250MB upev uploadev.org 90d inactive expiry diff --git a/hosts/filedot.sh b/hosts/filedot.sh index 253c33f..2d20f96 100644 --- a/hosts/filedot.sh +++ b/hosts/filedot.sh @@ -1,6 +1,6 @@ #! Name: filedot.sh #! Author: kittykat -#! Version: 2024.11.21 +#! Version: 2025.03.01 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -130,7 +130,7 @@ fdot_FetchFileInfo() { continue fi if grep -Eqi '' <<< "${PAGE}" ; then - post_token=$(grep -oP '(?<=input type="hidden" name="token" value=").*(?=">)' <<< "$PAGE") + post_token=$(grep -oP -m 1 '(?<=input type="hidden" name="token" value=").*(?=">.*$)' <<< "$PAGE") break else rm -f "${fdot_cookie_jar}"; @@ -211,8 +211,8 @@ fdot_FetchFileInfo() { return 1 fi if grep -Eqi '' <<< "${resp_login}" ; then - post_id=$(grep -oP '(?<=input type="hidden" name="id" value=").*(?=">)' <<< "$resp_login") - post_fname=$(grep -oP '(?<=input type="hidden" name="fname" value=").*(?=">)' <<< "$resp_login") + post_id=$(grep -oP -m 1 '(?<=input type="hidden" name="id" value=").*(?=">.*$)' <<< "$resp_login") + post_fname=$(grep -oP -m 1 '(?<=input type="hidden" name="fname" value=").*(?=">.*$)' <<< "$resp_login") post_fname_enc=$(urlencode_literal_grouped_case $post_fname) break else @@ -232,7 +232,8 @@ fdot_FetchFileInfo() { filename="$post_fname" printf "\\n" echo -e "${GREEN}# Getting download link…${NC}" - for ((c=1; c<=26; c++)); do + sleep 3s + for ((c=1; c<=30; c++)); do printf "${YELLOW} …${NC}" mkdir -p "${WorkDir}/.temp" trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f ${fdot_cookie_jar}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 @@ -311,7 +312,7 @@ fdot_FetchFileInfo() { fi done printf "\\n" - for ((d=1; d<=26; d++)); do + for ((d=1; d<=30; d++)); do printf "${YELLOW} _${NC}" mkdir -p "${WorkDir}/.temp" download_url="" @@ -372,7 +373,7 @@ fdot_FetchFileInfo() { return 1 fi if grep -Eqi 'class="bigres">= 26)) ; then @@ -410,10 +411,10 @@ fdot_FetchFileInfo() { if [[ -z $file_header ]] ; then if [[ $j == $maxfetchretries ]] ; then printf "\\n" - echo -e "${RED}| Failed to extract file info.${NC}" + echo -e "${RED}| Failed to extract file info [1]${NC}" warnAndRetryUnknownError=true if [[ "${finalAttempt}" == "true" ]] ; then - failedRetryDownload "${remote_url}" "" "" + failedRetryDownload "${remote_url}" "Failed to extract file info [1]" "" fi return 1 else @@ -423,25 +424,25 @@ fdot_FetchFileInfo() { if ! grep -Eqi 'HTTP/2 200|HTTP/1.1 200|200 OK' <<< $file_header ; then if [[ $j == $maxfetchretries ]] ; then printf "\\n" - echo -e "${RED}| Failed to extract file info${NC}" + echo -e "${RED}| Failed to extract file info [2]${NC}" warnAndRetryUnknownError=true if [[ "${finalAttempt}" == "true" ]] ; then - failedRetryDownload "${remote_url}" "" "" + failedRetryDownload "${remote_url}" "Failed to extract file info [2]" "" fi return 1 else continue fi fi - file_size_bytes=$(grep -oPi '(?<=content-length: ).*' <<< "$file_header") + file_size_bytes=$(grep -oPi -m 1 '(?<=content-length: ).*$' <<< "$file_header") file_size_bytes=${file_size_bytes//[$'\t\r\n']} if [[ -z "$file_size_bytes" ]]; then if [[ $j == $maxfetchretries ]] ; then printf "\\n" - echo -e "${RED}| Failed to extract file info.${NC}" + echo -e "${RED}| Failed to extract file info [3]${NC}" warnAndRetryUnknownError=true if [[ "${finalAttempt}" == "true" ]] ; then - failedRetryDownload "${remote_url}" "" "" + failedRetryDownload "${remote_url}" "Failed to extract file info [3]" "" fi return 1 else diff --git a/hosts/torup.sh b/hosts/torup.sh index 2318f2e..51685e7 100644 --- a/hosts/torup.sh +++ b/hosts/torup.sh @@ -1,6 +1,6 @@ #! Name: torup.sh #! Author: kittykat -#! Version: 2024.11.09 +#! Version: 2025.03.05 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -96,6 +96,7 @@ torp_FetchFileInfo() { debugHtml "${remote_url##*/}" "torp_fetch$i" "${response}" fi if [[ -z $response ]] ; then + rm -f "${torp_cookie_jar}"; if [[ $i == $maxfetchretries ]] ; then printf "\\n" echo -e "${RED}| Failed to extract download url [1]${NC}" @@ -108,7 +109,8 @@ torp_FetchFileInfo() { continue fi fi - if grep -Eqi "There is no such file|File was deleted because" <<< "$response"; then + if grep -Eqi "File Unavailable|This file has been disabled or deleted from our system|There is no such file" <<< "$response"; then + rm -f "${torp_cookie_jar}"; printf "\\n" echo -e "${RED}| The file was not found. It could be deleted or expired.${NC}" exitDownloadError=true @@ -126,6 +128,7 @@ torp_FetchFileInfo() { download_url="${fixed_url}/file" break else + rm -f "${torp_cookie_jar}"; if [[ $i == $maxfetchretries ]] ; then printf "\\n" echo -e "${RED}| Failed to extract download url [2]${NC}" diff --git a/hosts/up_lainsafe.sh b/hosts/up_lainsafe.sh index 14801e4..c5ced06 100644 --- a/hosts/up_lainsafe.sh +++ b/hosts/up_lainsafe.sh @@ -1,6 +1,6 @@ #! Name: up_lainsafe.sh #! Author: kittykat -#! Version: 2025.02.03 +#! Version: 2025.02.26 #! Desc: Add support for uploading files to dashfile.net #! Info: https://pomf2.lain.la/ #! MaxSize: 1GB @@ -101,6 +101,7 @@ lain_PostFile() { printf "\033[1A\r" printf "\033[1A\r" printf "\033[1A\r" + printf "\033[1A\r" printf "\33[2K\r" fi echo -e "${BLUE}| Attempt:${NC} $((i+1))${NC}" diff --git a/hosts/up_sendspace.sh b/hosts/up_sendspace.sh new file mode 100644 index 0000000..ab64a1f --- /dev/null +++ b/hosts/up_sendspace.sh @@ -0,0 +1,198 @@ +#! Name: up_sendspace.sh +#! Author: kittykat +#! Version: 2025.03.03 +#! Desc: Add support for uploading files to bedrive.ru +#! Info: Files are accessible at https://bedrive.ru/ +#! MaxSize: 300MB +#! Expire: ?? +#! 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='ss' +HostNick='sendspace' +HostFuncPrefix='ss' +#! +#! !! 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() +ss_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]/}" + MaxUploadSizeInBytes=314572800 + fsize=$(GetFileSize "$filepath" "false") + if ((fsize > MaxUploadSizeInBytes)); then + rm -f "${UploadTicket}" + echo -e "${YELLOW}| SKIP${NC}: The size of $filename is to large for $_hostCode. ($fsize > $MaxUploadSizeInBytes)" + failedUpload "$pline" "${filepath}" "${_hostCode}" "Skipping upload. The size of $filename is to large for $_hostCode. ($fsize > $MaxUploadSizeInBytes)" + return 1 + fi + 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 ss_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 --------------- # +#! +ss_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 "${GREEN}# Fetching post upload ticket…${NC}" + maxfetchretries=5 + for ((i=1; i<=maxfetchretries; i++)); do + mkdir -p "${WorkDir}/.temp" + ss_cookie_jar=$(mktemp "${WorkDir}/.temp/ss_cookies""${instance_no}"".XXXXXX") + printf " ." + tor_identity="${RANDOM}" + CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} + trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f "${ss_cookie_jar}"; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + response=$(tor_curl_request --insecure -L -s -b "${ss_cookie_jar}" -c "${ss_cookie_jar}" "https://sendspace.com") + if [[ "${DebugAllEnabled}" == "true" ]] ; then + debugHtml "${remote_url##*/}" "${_hostCode}_upload_fetch$i" "${response}" + fi + if [[ -z $response ]] ; then + rm -f "${ss_cookie_jar}"; + if [[ $i == $maxfetchretries ]] ; then + printf "\\n" + echo -e "${RED}| Failed to extract download upload info${NC}" + failedRetryUpload "$pline" "${filepath}" "${_hostCode}" "Failed to upload file." "No response" + exitUploadError=true + return 1 + else + continue + fi + fi + if grep -Eqi "blocked downloads from the Tor network|banned your IP|IP has been banned|you are banned" <<< "$response"; then + rm -f "${ss_cookie_jar}"; + if [[ $i == $maxfetchretries ]] ; then + printf "\\n" + echo -e "${RED}| Blocked Tor ip${NC}" + failedRetryUpload "$pline" "${filepath}" "${_hostCode}" "Failed to upload file." "Blocked Tor ip" + exitUploadError=true + return 1 + else + continue + fi + fi + if grep -Eqi 'form role="main" method="post" action="' <<< "$response"; then + printf " +\\n" + echo -e "${GREEN}| Upload info found${NC}" + post_action=$(grep -oPi -m 1 '(?<=form role="main" method="post" action=").*(?=" enctype=.*$)' <<< "$response") + post_sig=$(grep -oPi '(?<=input type="hidden" name="signature" value=").*(?=" />.*$)' <<< "$response") + fi + if [[ -z "$post_action" ]] || [[ -z "$post_sig" ]] ; then + rm -f "${ss_cookie_jar}"; + if [[ $i == $maxfetchretries ]] ; then + printf "\\n" + echo -e "${RED}| Failed to extract upload info [2]${NC}" + failedRetryUpload "$pline" "${filepath}" "${_hostCode}" "Failed to upload file." "Failed to extract upload info [2]" + exitUploadError=true + return 1 + else + continue + fi + else + break + fi + done + echo -e "[${YELLOW}${_hostCode}${NC}] Uploading ${GREEN}${filename}${NC}" + tor_identity="${RANDOM}" + PostUrlHost="$post_action" + arrFiles=("$filepath") + trap "rm -f ${UploadTicket}; echo ""; rm -f "${ss_cookie_jar}"; tput cnorm; exit" 0 1 2 3 6 15 + response=$(tor_curl_upload --insecure -i -L \ + -H "Content-Type: multipart/form-data" \ + -F "terms=1" \ + -F "utype=anon" \ + -F "signature=$post_sig" \ + -F "file[]=" \ + -F "upload_file[]=@$filepath" \ + -b "${ss_cookie_jar}" -c "${ss_cookie_jar}" \ + "${PostUrlHost}") + if [[ "${DebugAllEnabled}" == "true" ]] ; then + debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" + fi + if grep -Eqi 'aria-label="Download Page Link" href="https://www.sendspace.com' <<< "${response}" ; then + url=$(grep -oPi -m 1 '(?<=aria-label="Download Page Link" href=").*?(?=" target.*$)' <<< "$response") + filesize=$(GetFileSize "$filepath" "false") + downloadLink="${url}" + echo -e "${GREEN}| Upload Success${NC}" + echo -e "| Size: ${BLUE}${filesize}${NC} bytes${NC}" + echo -e "| Link: ${YELLOW}${downloadLink}${NC}" + rm -f "${ss_cookie_jar}"; + successUpload "$pline" "${filepath}" "${_hostCode}" "${filesize}" "${downloadLink}" "{$response}" + return 0 + else + err=$(grep -oPi '(?<="error":).*?(?=,.*$)' <<< "$response") + if [[ "${finalAttempt}" == "true" ]] ; then + rm -f "${ss_cookie_jar}"; + 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/hosts/uploadhive.sh b/hosts/uploadhive.sh index f0da9c0..0b218c0 100644 --- a/hosts/uploadhive.sh +++ b/hosts/uploadhive.sh @@ -1,6 +1,6 @@ #! Name: uploadhive.sh #! Author: kittykat -#! Version: 2025.02.17 +#! Version: 2025.03.06 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -132,7 +132,7 @@ uhive_FetchFileInfo() { CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 form_data="op=${post_op}&id=${post_id}&rand=${post_rand}&referer=${post_referer}&method_free=&method_premium=" - response=$(tor_curl_request --insecure -L -s -X POST --data "$form_data" "$remote_url") + response=$(tor_curl_request --insecure -L -s -X POST --data "$form_data" "$remote_url" --connect-to uploadhive.com::172.67.130.243) if [[ "${DebugAllEnabled}" == "true" ]] ; then debugHtml "${remote_url##*/}" "uhive_post" "${response}" fi @@ -189,7 +189,6 @@ uhive_FetchFileInfo() { fi return 1 fi - echo -e "download_url: $download_url" if [[ -z $download_url ]] ; then echo -e "${RED}| Failed to extract download link [2]${NC}" warnAndRetryUnknownError=true @@ -229,12 +228,15 @@ uhive_FetchFileInfo() { #! ----------- (3) Fetch File / Download File Function --------------- # #! uhive_GetFile() { - echo -e "${GREEN}# Downloading…" + echo -e "${GREEN}# Downloading… ${BLUE}(no resume)${NC}" echo -e "${YELLOW}| File path:${NC}\t./.inflight/${filename}\n" fileCnt=$1 retryCnt=$2 finalAttempt=$3 flockDownload="${WorkDir}/.flocks/${filename//[^a-zA-Z0-9\.\_\-]/}.flock" + if [[ -f "$file_path" ]]; then + rm -f "$file_path" + fi for ((j=1; j<=$MaxDownloadRetries; j++)); do pd_presize=0 if [[ -f "$file_path" ]] ; then diff --git a/mad.sh b/mad.sh index 198c54e..09828e2 100644 --- a/mad.sh +++ b/mad.sh @@ -23,16 +23,26 @@ # * MisterFL - unzip after completion code and ideas # * stacktrough - click captcha workarounds and pixel websock code # * oldfart - code suggestions, helpful feedback, clipmon implementation, WorkDir, fixes -# * ysDyx - code suggestions, alternative imagemagick ocr implemention +# * ysDyx - code suggestions, alternative imagemagick ocr implemention, uploadhive fix # # Thanks for testing, feedback, bug reports, suggestions, and encouragement: -# * zaire, Rexmaxx, TinyPanties56, klonkerz, Stifflove, samiam22, peachbutler +# * zaire, Rexmaxx, TinyPanties56, klonkerz, Stifflove, samiam22, sayke, peachbutler, Belky # # * Everyone who provided feedback and helped test.. and those who wish to remain anonymous -ScriptVersion=2025.02.25 +ScriptVersion=2025.03.08 #================================================= # Recent Additions +# 2025.03.08 - [mad] Only check files in determining which curl header +# 2025.03.06 - [uploadhive] Disable global resume for servers without resume +# 2025.03.05 - [torup] Fix torup removed response change from prior +# 2025.03.05 - [mad] Add uploadflix.cc back to recommended download upload host lists (working) +# 2025.03.04 - [mad] Add "expect100-timeout" header to curl upload request +# 2025.03.03 - [up_sendspace] Add sendspace.com as upload host (300MB) +# 2025.03.01 - [filedot] Fix filename parsing. Add 3 second wait for Free Download post. +# 2025.03.01 - [torup] Update file removed response +# 2025.02.26 - [uploadhive] Fix "Wrong IP" error -- use uploadhive.com IP4 address to connect for post +# 2025.02.26 - [up_lainsafe] Fix retry terminal output # 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) @@ -402,15 +412,15 @@ tor_curl_request_extended() { tor_curl_upload() { if [[ "${UseTorCurlImpersonate}" == "true" ]]; then if [[ "${RateMonitorEnabled}" == "true" ]]; then - "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" + "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" else - "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" + "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" fi else if [[ "${RateMonitorEnabled}" == "true" ]]; then - curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" + curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" else - curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" + curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" fi fi } @@ -420,18 +430,18 @@ SetEnabledUploadHosts() { lstEnabledUploadHosts+="up_fileblade,up_fileditch,up_firestorage,up_free4e,up_gofile,up_harrault," 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,up_fileland,up_fireget,up_euromussels,up_ramsgaard," - lstEnabledUploadHosts+="up_gagneux,up_uwabaki,up_lainsafe,up_sendnow" + lstEnabledUploadHosts+="up_uploadflix,up_uploadhive,up_uploadraja,up_herbolistique,up_uploadbay,up_ateasystems," + lstEnabledUploadHosts+="up_syspro,up_dashfile,up_anonfile,up_fileland,up_fireget,up_euromussels,up_ramsgaard," + lstEnabledUploadHosts+="up_gagneux,up_uwabaki,up_lainsafe,up_sendnow,up_sendspace" 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," lstEnabledUploadHosts+="up_harrault,up_hexload,up_isupload,up_kouploader,up_kraken,up_moocloud,up_nantes," 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_shareonline,up_skrepr,up_torup,up_turboonion,up_uploadee,up_uploadflix,up_uploadhive," lstEnabledUploadHosts+="up_uploadraja,up_yolobit,up_herbolistique,up_uploadbay,up_ateasystems,up_syspro," lstEnabledUploadHosts+="up_dashfile,up_anonfile,up_fileland,up_fireget,up_euromussels,up_ramsgaard," - lstEnabledUploadHosts+="up_gagneux,up_uwabaki,up_lainsafe,up_sendnow" + lstEnabledUploadHosts+="up_gagneux,up_uwabaki,up_lainsafe,up_sendnow,up_sendspace" fi } SetEnabledDownloadHosts() { @@ -441,7 +451,7 @@ SetEnabledDownloadHosts() { lstEnabledDownloadHosts+="fileditch,filedoge,filedot,filehaus,filesquid,firestorage,free4e,freesocial," 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+="tempfileme,tempsh,torup,turboonion,up2share,uploadee,uploadev,uploadflix,uploadhive," lstEnabledDownloadHosts+="youdbox,herbolistique,uploadbay,ateasystems,syspro,dashfile,anonfile,desiupload," lstEnabledDownloadHosts+="fileland,fireget,euromussels,ramsgaard,uwabaki,gagneux,sendnow,sendspace," lstEnabledDownloadHosts+="blackcloud_onion" @@ -452,9 +462,9 @@ SetEnabledDownloadHosts() { lstEnabledDownloadHosts+="free4e,gofile,harrault,hexload,isupload,kraken,lainsafe," 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,desiupload,fileland,fireget," - lstEnabledDownloadHosts+="euromussels,ramsgaard,uwabaki,gagneux,sendnow,sendspace,blackcloud_onion" + lstEnabledDownloadHosts+="turboonion,up2share,uploadee,uploadev,uploadflix,uploadhive,yolobit,youdbox," + lstEnabledDownloadHosts+="herbolistique,uploadbay,ateasystems,syspro,dashfile,anonfile,desiupload,fileland," + lstEnabledDownloadHosts+="fireget,euromussels,ramsgaard,uwabaki,gagneux,sendnow,sendspace,blackcloud_onion" fi } GetRandomFiledotUser() { @@ -3732,10 +3742,10 @@ if [[ "$torPort" == "" ]] ; then fi if [[ "${UseTorCurlImpersonate}" == "true" ]]; then curl_impersonate=() - readarray -d $'' arrFiles < <(find "$ScriptDir" -maxdepth 1 -name "curl_*" -printf '%p\n' | sort -Vk1) + readarray -d $'' arrFiles < <(find "$ScriptDir" -maxdepth 1 -type f -name "curl_*" -printf '%p\n' | sort -Vk1) bFoundCurlHeader=false for fil in "${arrFiles[@]}"; - do + do if which $fil >/dev/null; then curl_impersonate=($fil) bFoundCurlHeader=true diff --git a/uploads.txt b/uploads.txt index 450c125..450e28d 100755 --- a/uploads.txt +++ b/uploads.txt @@ -12,7 +12,7 @@ # 40GB isup isupload.com 100MB fb fileblade.com 500MB fland fileland.io # 100MB ubay uploadbay.net 2GB sysp syspro.com.br 1GB uwab uwabaki.party # 512MB anon anonfile.de 100MB fget fireget.com 1GB lain pomf2.lain.la -# 100GB snow send.now +# 100GB snow send.now 300MB ss sendspace.com # Jirafeau hosts (recommended upload 100MB splits as many host only support that) # 10GB anarc anarchaserver 1GB kaz depot.kaz.bzh 5GB squid filesquid # 10GB nant nantes.cloud 500MB soy soyjak.download 512MB linx linxx.net