diff --git a/.audit/mad-audit-curl.log b/.audit/mad-audit-curl.log index 2e57f62..39c109f 100755 --- a/.audit/mad-audit-curl.log +++ b/.audit/mad-audit-curl.log @@ -1,4 +1,4 @@ -DateTime: 25.03.08 +DateTime: 25.03.30 Files: ./hosts/1fichier.sh @@ -6,6 +6,7 @@ Files: ./hosts/acid.sh ./hosts/anarchaserver.sh ./hosts/anonfile.sh +./hosts/anonfileio.sh ./hosts/anonsharing.sh ./hosts/archived/nekofile.sh ./hosts/ateasystems.sh @@ -79,10 +80,12 @@ Files: ./hosts/uploadev.sh ./hosts/uploadflix.sh ./hosts/uploadhive.sh +./hosts/uploadscloud.sh ./hosts/up_1fichier.sh ./hosts/up_acid.sh ./hosts/up_anarchaserver.sh ./hosts/up_anonfile.sh +./hosts/up_anonfileio.sh ./hosts/up_anonsharing.sh ./hosts/up_ateasystems.sh ./hosts/up_axfc.sh @@ -166,8 +169,8 @@ _________________________________________________________________________ ./hosts/1fichier.sh:48: PAGE=$(tor_curl_request --insecure --max-time "$ConnectTimeout" -s "${remote_url}") ./hosts/1fichier.sh:160: cdn_request=$(tor_curl_request --insecure -s -L -b "${fich_cookie_jar}" -c "${fich_cookie_jar}" -F "submit=Download" -F "pass=${fich_user_provided_password}" -F "adz=${fich_adz_parameter}" "${remote_url}") ./hosts/1fichier.sh:194: file_header=$(tor_curl_request --insecure -sSIL -e "${remote_url}" "${target_file_link}") -./hosts/1fichier.sh:261: tor_curl_request --insecure -e "${remote_url}" "${target_file_link}" -C - -o "${file_path}" -./hosts/1fichier.sh:354: PAGE=$(tor_curl_request --insecure --max-time "$ConnectTimeout" -c "${fich_cookie_jar}" -s "${remote_url}") +./hosts/1fichier.sh:262: tor_curl_request --insecure -e "${remote_url}" "${target_file_link}" -C - -o "${file_path}" +./hosts/1fichier.sh:355: PAGE=$(tor_curl_request --insecure --max-time "$ConnectTimeout" -c "${fich_cookie_jar}" -s "${remote_url}") ./hosts/9saves.sh:90: response=$(tor_curl_request --insecure -L -s -b "${ns_cookie_jar}" -c "${ns_cookie_jar}" "$remote_url") ./hosts/9saves.sh:139: response=$(tor_curl_request --insecure -L -s -X POST \ ./hosts/9saves.sh:188: file_header=$(tor_curl_request --insecure --head -L -s -b "${ns_cookie_jar}" -c "${ns_cookie_jar}" "$download_url") @@ -356,13 +359,13 @@ _________________________________________________________________________ ./hosts/quax.sh:85: file_header=$(tor_curl_request --insecure --head -L -s "$download_url") ./hosts/quax.sh:176: tor_curl_request --insecure --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" ./hosts/quax.sh:178: tor_curl_request --insecure "$download_url" --continue-at - --output "$file_path" -./hosts/ranoz.sh:90: response=$(tor_curl_request --insecure -L -s "$remote_url") -./hosts/ranoz.sh:160: file_header=$(tor_curl_request --insecure --head -L -i -s "$download_url") -./hosts/ranoz.sh:270: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./hosts/ranoz.sh:272: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:276: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:281: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:296: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:92: response=$(tor_curl_request --insecure -L -i -s \ +./hosts/ranoz.sh:168: file_header=$(tor_curl_request --insecure --head -L -i -s \ +./hosts/ranoz.sh:281: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./hosts/ranoz.sh:283: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:287: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:292: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:307: tor_curl_request --insecure -L -G --no-alpn \ ./hosts/sendnow.sh:89: response=$(tor_curl_request --insecure -L -s -b "${snow_cookie_jar}" -c "${snow_cookie_jar}" "$remote_url") ./hosts/sendnow.sh:162: response=$(tor_curl_request --insecure -L -svo. -X POST \ ./hosts/sendnow.sh:206: file_header=$(tor_curl_request_extended --insecure --head -Lis \ @@ -398,11 +401,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: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/torup.sh:192: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./hosts/torup.sh:194: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:201: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:209: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:226: 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 \ @@ -435,9 +438,15 @@ _________________________________________________________________________ ./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/uploadscloud.sh:90: response=$(tor_curl_request --insecure -L -s -b "${upsc_cookie_jar}" -c "${upsc_cookie_jar}" "$remote_url") +./hosts/uploadscloud.sh:142: response=$(tor_curl_request --insecure -svo. -X POST \ +./hosts/uploadscloud.sh:183: file_header=$(tor_curl_request --insecure --head -L -s -b "${upsc_cookie_jar}" -c "${upsc_cookie_jar}" --referer "$remote_url" "$download_url") +./hosts/uploadscloud.sh:306: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./hosts/uploadscloud.sh:308: 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 \ +./hosts/up_anonfileio.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_anonsharing.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_ateasystems.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_axfc.sh:109: response=$(tor_curl_request --insecure -L -s -b "${axfc_cookie_jar}" -c "${axfc_cookie_jar}" "$fixed_url") @@ -471,8 +480,9 @@ _________________________________________________________________________ ./hosts/up_oshi.sh:110: response=$(tor_curl_upload --insecure \ ./hosts/up_pixeldrain.sh:112: response=$(tor_curl_upload --insecure -X PUT \ ./hosts/up_quax.sh:102: response=$(tor_curl_upload --insecure -i \ -./hosts/up_ranoz.sh:129: response=$(tor_curl_upload --insecure -L -i -s \ -./hosts/up_ranoz.sh:156: response=$(tor_curl_upload --insecure -i -X PUT \ +./hosts/up_ranoz.sh:133: response=$(tor_curl_upload --insecure -L -i -s \ +./hosts/up_ranoz.sh:140: response=$(tor_curl_upload --insecure -Lis \ +./hosts/up_ranoz.sh:169: 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") @@ -498,119 +508,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: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" +./mad.sh:71:UseTorCurlImpersonate=false +./mad.sh:367:tor_curl_request() { +./mad.sh:368: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:369: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:371: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:374:tor_curl_request_extended() { +./mad.sh:376: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:377: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:379: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:382:tor_curl_upload() { +./mad.sh:383: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:385: "${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:387: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" +./mad.sh:391: 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:393: 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:1392:install_curl_impersonate() { +./mad.sh:1394: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original dev, but it is relatively inactive." +./mad.sh:1395: echo -e "- Currently uses curl v8.1.1." +./mad.sh:1399: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." +./mad.sh:1400: echo -e "+ Currently uses curl v8.7.1" +./mad.sh:1404: PS3='Please select which curl_impersonate to install: ' +./mad.sh:1412: install_curl_impersonate_lwthiker_orig +./mad.sh:1416: install_curl_impersonate_lexiforest_fork +./mad.sh:1426:install_curl_impersonate_lwthiker_orig() { +./mad.sh:1430: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original curl_impersonate." +./mad.sh:1431: echo -e "+ Currently uses curl v8.1.1, and has low activity for updates" +./mad.sh:1434: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lwthiker curl_impersonate${NC} info from github...${NC}" +./mad.sh:1437: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) +./mad.sh:1439: debugHtml "github" "lbf_inst_curlimp$j" "$response" +./mad.sh:1442: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") +./mad.sh:1452: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { +./mad.sh:1454: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1457: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") +./mad.sh:1459: debugHtml "github" "head_inst_curlimp$j" "${file_header}" +./mad.sh:1507: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1536: echo -e "| Extracting curl_impersonate..." +./mad.sh:1538: rm -f "${ScriptDir}"/curl* +./mad.sh:1539: mv "$extract_location/curl-impersonate-ff" "${ScriptDir}/" +./mad.sh:1540: mv "$extract_location/curl_ff109" "${ScriptDir}/" +./mad.sh:1541: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." +./mad.sh:1549:install_curl_impersonate_lexiforest_fork() { +./mad.sh:1553: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." +./mad.sh:1554: echo -e "+ Currently uses curl v8.7.1, and is patched for latest CVEs" +./mad.sh:1557: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lexiforest curl_impersonate fork${NC} info from github...${NC}" +./mad.sh:1560: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) +./mad.sh:1562: debugHtml "github" "lbf_inst_curlimp$j" "$response" +./mad.sh:1565: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") +./mad.sh:1575: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { +./mad.sh:1577: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1580: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") +./mad.sh:1582: debugHtml "github" "head_inst_curlimp$j" "${file_header}" +./mad.sh:1630: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1659: echo -e "| Extracting curl_impersonate..." +./mad.sh:1661: rm -f "${ScriptDir}"/curl* +./mad.sh:1662: mv "$extract_location/curl-impersonate-chrome" "${ScriptDir}/" +./mad.sh:1663: mv "$extract_location/curl_chrome131" "${ScriptDir}/" +./mad.sh:1664: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." +./mad.sh:1826: echo -e ":${NC} ${GREEN}MAD${PINK} Audit${NC} : Reports usage of http & curl in scripts${PINK}${BLD} :" +./mad.sh:1834: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1835: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1844: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1846: echo -e "$maud_curl" +./mad.sh:1848: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1850: echo -e "$maud_torcurl" +./mad.sh:1862: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1863: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1872: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" +./mad.sh:1874: echo -e "$maud_curl" +./mad.sh:1876: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1878: echo -e "$maud_torcurl" +./mad.sh:1884: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1885: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1894: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1896: echo -e "$maud_curl" +./mad.sh:1898: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1900: echo -e "$maud_torcurl" +./mad.sh:2855: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:2856: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:2858: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:3030: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:3031: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:3033: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:3231: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ +./mad.sh:3238: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | +./mad.sh:3375: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" +./mad.sh:3432: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./mad.sh:3434: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" +./mad.sh:3632: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3639: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3710:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:3711: curl_impersonate=() +./mad.sh:3712: readarray -d $'' arrFiles < <(find "$ScriptDir" -maxdepth 1 -type f -name "curl_*" -printf '%p\n' | sort -Vk1) +./mad.sh:3713: bFoundCurlHeader=false +./mad.sh:3717: curl_impersonate=($fil) +./mad.sh:3718: bFoundCurlHeader=true +./mad.sh:3722: if [[ "$bFoundCurlHeader" == "false" ]]; then +./mad.sh:3723: echo -e "${RED}[ERROR] Missing dependency \"curl-impersonate\"!${NC}" +./mad.sh:3726: echo -e "You'll need to download ${GREEN}\"curl-impersonate\"${NC}." +./mad.sh:3729: echo -e "The latest binary can be obtained on GitHub, search for \"curl-impersonate\"" +./mad.sh:3731: echo -e " 1. Visit the page of curl-impersonate and add \"/releases/latest/\" at end of URL." +./mad.sh:3735: echo -e " 4. Download archive ${GREEN}\"curl-impersonate-vX.Y.Z.x86_64-linux-gnu.tar.gz\"${YELLOW}." +./mad.sh:3736: echo -e " 5. Extract files ${GREEN}\"curl-impersonate-ff\"${NC} and ${GREEN}\"curl_ff109\"${NC} next to this script." +./mad.sh:3739: echo -e "run $0 install_curl_impersonate\\n" +./mad.sh:3741: yes_or_no "Do you wish to download and extract latest curl_impersonate (using tor+curl)?" && { +./mad.sh:3742: UseTorCurlImpersonate=false +./mad.sh:3743: install_curl_impersonate +./mad.sh:3827: echo -e "[${YELLOW}Install curl_impersonate${NC}]: Downloads the latest binary for curl_impersonate from github repo (3 choices)" +./mad.sh:3828: printf " %s install_curl_impersonate\\n" "$0" +./mad.sh:3906:elif [[ "$arg1" == "install_curl_impersonate" ]]; then +./mad.sh:3907: install_curl_impersonate +./mad.sh:3938:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:3939: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:3941: 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 4a6fbcb..788568d 100755 --- a/.audit/mad-audit-http.log +++ b/.audit/mad-audit-http.log @@ -1,4 +1,4 @@ -DateTime: 25.03.08 +DateTime: 25.03.30 Files: ./hosts/1fichier.sh @@ -6,6 +6,7 @@ Files: ./hosts/acid.sh ./hosts/anarchaserver.sh ./hosts/anonfile.sh +./hosts/anonfileio.sh ./hosts/anonsharing.sh ./hosts/archived/nekofile.sh ./hosts/ateasystems.sh @@ -79,10 +80,12 @@ Files: ./hosts/uploadev.sh ./hosts/uploadflix.sh ./hosts/uploadhive.sh +./hosts/uploadscloud.sh ./hosts/up_1fichier.sh ./hosts/up_acid.sh ./hosts/up_anarchaserver.sh ./hosts/up_anonfile.sh +./hosts/up_anonfileio.sh ./hosts/up_anonsharing.sh ./hosts/up_ateasystems.sh ./hosts/up_axfc.sh @@ -168,6 +171,8 @@ _________________________________________________________________________ ./hosts/anonfile.sh:230: if grep -Eqi 'img src="https://anonfile.de/captchas/' <<< "$response" ; then ./hosts/anonfile.sh:442: if grep -Eqi '^${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:692: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #http (if changed) +./mad.sh:694: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #direct url https +./mad.sh:697: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:699: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:720: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #http (if changed) +./mad.sh:722: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #direct url https +./mad.sh:725: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:727: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:748: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #http (if changed) +./mad.sh:750: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #direct url https +./mad.sh:753: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:755: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:777: sed -i -e "s>^${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #http (if changed) +./mad.sh:779: sed -i -e "s>^direct=${url/https:/http:}.*>#& #FAIL# $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:} +./mad.sh:808: sed -i -e "s>^${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #http (if changed) +./mad.sh:810: sed -i -e "s>^direct=${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #direct url https +./mad.sh:813: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:815: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:841: sed -i -e "s>^${url/https:/http:}.*>${url}|${newfilename}>g" "${InputFile}" #http (if changed) +./mad.sh:843: sed -i -e "s>^direct=${url/https:/http:}.*>direct=${url}|${newfilename}>g" "${InputFile}" #direct url https +./mad.sh:863: sed -i -e "s%^${url/https:/http:}.*%${newurl//[[:space:]]/$'\\\n'}%g" "${InputFile}" #http (if changed) +./mad.sh:884: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #http (if changed) +./mad.sh:886: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #direct url https +./mad.sh:889: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:891: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:907: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #http (if changed) +./mad.sh:909: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #direct url https +./mad.sh:912: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:914: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:933: sed -i -e "s>^${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #http (if changed) +./mad.sh:935: sed -i -e "s>^direct=${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #direct url https +./mad.sh:938: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:940: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:960: sed -i -e "s>^${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #http (if changed) +./mad.sh:962: sed -i -e "s>^direct=${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #direct url https +./mad.sh:965: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:967: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:985: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #http (if changed) +./mad.sh:987: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #direct url https +./mad.sh:990: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:992: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:1011: 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:1013: 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:1016: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:1018: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:1437: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) +./mad.sh:1454: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1560: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) +./mad.sh:1577: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1840: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1868: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1890: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:3214: if grep -Eqi '.onion' <<< "$download_url" && grep -Eqi 'https://' <<< "$download_url" ; then +./mad.sh:3749:arg2="$2" # auto, filelist, +./mad.sh:3846: echo -e " - http://oshi.at/abcd/origAABB.rar|My specified file.part1.rar" +./mad.sh:3848: echo -e " - direct=http://pomf2.lain.la/f/abcd00zz.7z" +./mad.sh:3850: echo -e ' - ie. direct=http://somehost.onion/abcD|filename.part1.rar' +./mad.sh:4069: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4070: remote_url=${remote_url/http:/https:} +./mad.sh:4091: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4092: remote_url=${remote_url/http:/https:} +./mad.sh:4458: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4459: remote_url=${remote_url/http:/https:} +./mad.sh:4517: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4518: remote_url=${remote_url/http:/https:} +./mad.sh:4544: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4545: 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 95c0a55..4033ebf 100755 --- a/.audit/mad-audit-tor_curl-details.log +++ b/.audit/mad-audit-tor_curl-details.log @@ -1,4 +1,4 @@ -DateTime: 25.03.08 +DateTime: 25.03.30 Files: ./hosts/1fichier.sh @@ -6,6 +6,7 @@ Files: ./hosts/acid.sh ./hosts/anarchaserver.sh ./hosts/anonfile.sh +./hosts/anonfileio.sh ./hosts/anonsharing.sh ./hosts/archived/nekofile.sh ./hosts/ateasystems.sh @@ -79,10 +80,12 @@ Files: ./hosts/uploadev.sh ./hosts/uploadflix.sh ./hosts/uploadhive.sh +./hosts/uploadscloud.sh ./hosts/up_1fichier.sh ./hosts/up_acid.sh ./hosts/up_anarchaserver.sh ./hosts/up_anonfile.sh +./hosts/up_anonfileio.sh ./hosts/up_anonsharing.sh ./hosts/up_ateasystems.sh ./hosts/up_axfc.sh @@ -199,29 +202,29 @@ _________________________________________________________________________ ./hosts/1fichier.sh:203: if [[ -z "$file_header" ]] || [[ -z "$file_size_bytes" ]]; then ./hosts/1fichier.sh:204: continue -- -./hosts/1fichier.sh:261: tor_curl_request --insecure -e "${remote_url}" "${target_file_link}" -C - -o "${file_path}" -./hosts/1fichier.sh:262: rm -f "$flockDownload"; -./hosts/1fichier.sh:263: received_file_size=0 -./hosts/1fichier.sh:264: if [[ -f "$file_path" ]] ; then -./hosts/1fichier.sh:265: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') -./hosts/1fichier.sh:266: fi -./hosts/1fichier.sh:267: if [[ "${received_file_size}" -ne "${file_size_bytes}" ]]; then -./hosts/1fichier.sh:268: echo -e "${RED}ERROR: Size mismatch after downloading${NC}\nPerhaps you or 1fichier lost connection for a while?" -./hosts/1fichier.sh:269: if [[ "${finalAttempt}" == "true" ]] ; then -./hosts/1fichier.sh:270: droppedSizeBadDownload "${remote_url}" "${filename}" "${received_file_size}" -./hosts/1fichier.sh:271: fi +./hosts/1fichier.sh:262: tor_curl_request --insecure -e "${remote_url}" "${target_file_link}" -C - -o "${file_path}" +./hosts/1fichier.sh:263: rm -f "$flockDownload"; +./hosts/1fichier.sh:264: received_file_size=0 +./hosts/1fichier.sh:265: if [[ -f "$file_path" ]] ; then +./hosts/1fichier.sh:266: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./hosts/1fichier.sh:267: fi +./hosts/1fichier.sh:268: if [[ "${received_file_size}" -ne "${file_size_bytes}" ]]; then +./hosts/1fichier.sh:269: echo -e "${RED}ERROR: Size mismatch after downloading${NC}\nPerhaps you or 1fichier lost connection for a while?" +./hosts/1fichier.sh:270: if [[ "${finalAttempt}" == "true" ]] ; then +./hosts/1fichier.sh:271: droppedSizeBadDownload "${remote_url}" "${filename}" "${received_file_size}" +./hosts/1fichier.sh:272: fi -- -./hosts/1fichier.sh:354: PAGE=$(tor_curl_request --insecure --max-time "$ConnectTimeout" -c "${fich_cookie_jar}" -s "${remote_url}") -./hosts/1fichier.sh:355: if [[ -z ${PAGE} ]]; then -./hosts/1fichier.sh:356: rm -f "${fich_cookie_jar}" -./hosts/1fichier.sh:357: continue -./hosts/1fichier.sh:358: fi -./hosts/1fichier.sh:359: if grep -Eqi 'Warning !|Attention !' <<< "${PAGE}"; then -./hosts/1fichier.sh:360: rm -f "${fich_cookie_jar}" -./hosts/1fichier.sh:361: continue -./hosts/1fichier.sh:362: else -./hosts/1fichier.sh:363: fich_adz_parameter=$(grep -oPi 'name="adz" value="\K[^"]+' <<< "${PAGE}") -./hosts/1fichier.sh:364: if [[ $fich_adz_parameter ]]; then +./hosts/1fichier.sh:355: PAGE=$(tor_curl_request --insecure --max-time "$ConnectTimeout" -c "${fich_cookie_jar}" -s "${remote_url}") +./hosts/1fichier.sh:356: if [[ -z ${PAGE} ]]; then +./hosts/1fichier.sh:357: rm -f "${fich_cookie_jar}" +./hosts/1fichier.sh:358: continue +./hosts/1fichier.sh:359: fi +./hosts/1fichier.sh:360: if grep -Eqi 'Warning !|Attention !' <<< "${PAGE}"; then +./hosts/1fichier.sh:361: rm -f "${fich_cookie_jar}" +./hosts/1fichier.sh:362: continue +./hosts/1fichier.sh:363: else +./hosts/1fichier.sh:364: fich_adz_parameter=$(grep -oPi 'name="adz" value="\K[^"]+' <<< "${PAGE}") +./hosts/1fichier.sh:365: if [[ $fich_adz_parameter ]]; then -- ./hosts/9saves.sh:90: response=$(tor_curl_request --insecure -L -s -b "${ns_cookie_jar}" -c "${ns_cookie_jar}" "$remote_url") ./hosts/9saves.sh:91: if [[ "${DebugAllEnabled}" == "true" ]] ; then @@ -1935,62 +1938,62 @@ _________________________________________________________________________ ./hosts/quax.sh:187: containsHtml=true ./hosts/quax.sh:188: fi -- -./hosts/ranoz.sh:90: response=$(tor_curl_request --insecure -L -s "$remote_url") -./hosts/ranoz.sh:91: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./hosts/ranoz.sh:92: debugHtml "${remote_url##*/}" "rz_fetch$i" "${response}" -./hosts/ranoz.sh:93: fi -./hosts/ranoz.sh:94: if [[ -z $response ]] ; then -./hosts/ranoz.sh:95: if [[ $i == $maxfetchretries ]] ; then -./hosts/ranoz.sh:96: printf "\\n" -./hosts/ranoz.sh:97: echo -e "${RED}| Failed to extract download url [1]${NC}" -./hosts/ranoz.sh:98: warnAndRetryUnknownError=true -./hosts/ranoz.sh:99: if [[ "${finalAttempt}" == "true" ]] ; then -./hosts/ranoz.sh:100: failedRetryDownload "${remote_url}" "Failed to extract download url [1]" "" +./hosts/ranoz.sh:92: response=$(tor_curl_request --insecure -L -i -s \ +./hosts/ranoz.sh:93: -b "${rz_cookie_jar}" -c "${rz_cookie_jar}" \ +./hosts/ranoz.sh:94: "$remote_url") +./hosts/ranoz.sh:95: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/ranoz.sh:96: debugHtml "${remote_url##*/}" "rz_fetch$i" "${response}" +./hosts/ranoz.sh:97: fi +./hosts/ranoz.sh:98: if [[ -z $response ]] ; then +./hosts/ranoz.sh:99: if [[ $i == $maxfetchretries ]] ; then +./hosts/ranoz.sh:100: rm -f "${rz_cookie_jar}"; +./hosts/ranoz.sh:101: printf "\\n" +./hosts/ranoz.sh:102: echo -e "${RED}| Failed to extract download url [1]${NC}" -- -./hosts/ranoz.sh:160: file_header=$(tor_curl_request --insecure --head -L -i -s "$download_url") -./hosts/ranoz.sh:161: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./hosts/ranoz.sh:162: debugHtml "${remote_url##*/}" "rz_head$j" "download_url: ${download_url}"$'\n'"${file_header}" -./hosts/ranoz.sh:163: fi -./hosts/ranoz.sh:164: if [[ -z $file_header ]] ; then -./hosts/ranoz.sh:165: if [[ $j == $maxfetchretries ]] ; then -./hosts/ranoz.sh:166: rm -f "${rz_cookie_jar}"; -./hosts/ranoz.sh:167: printf "\\n" -./hosts/ranoz.sh:168: echo -e "${RED}| Failed to extract file info${NC}" -./hosts/ranoz.sh:169: warnAndRetryUnknownError=true -./hosts/ranoz.sh:170: if [[ "${finalAttempt}" == "true" ]] ; then +./hosts/ranoz.sh:168: file_header=$(tor_curl_request --insecure --head -L -i -s \ +./hosts/ranoz.sh:169: -b "${rz_cookie_jar}" -c "${rz_cookie_jar}" \ +./hosts/ranoz.sh:170: "$download_url") +./hosts/ranoz.sh:171: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/ranoz.sh:172: debugHtml "${remote_url##*/}" "rz_head$j" "download_url: ${download_url}"$'\n'"${file_header}" +./hosts/ranoz.sh:173: fi +./hosts/ranoz.sh:174: if [[ -z $file_header ]] ; then +./hosts/ranoz.sh:175: if [[ $j == $maxfetchretries ]] ; then +./hosts/ranoz.sh:176: rm -f "${rz_cookie_jar}"; +./hosts/ranoz.sh:177: printf "\\n" +./hosts/ranoz.sh:178: echo -e "${RED}| Failed to extract file info${NC}" -- -./hosts/ranoz.sh:272: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:273: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ -./hosts/ranoz.sh:274: "$download_url" --continue-at - --output "$file_path" -./hosts/ranoz.sh:275: else -./hosts/ranoz.sh:276: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:277: "$download_url" --continue-at - --output "$file_path" -./hosts/ranoz.sh:278: fi -./hosts/ranoz.sh:279: else -./hosts/ranoz.sh:280: if [[ "${RateMonitorEnabled}" == "true" ]]; then -./hosts/ranoz.sh:281: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:282: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ -./hosts/ranoz.sh:283: -H "User-Agent: $RandomUA" \ -./hosts/ranoz.sh:284: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ -./hosts/ranoz.sh:285: -H "Accept-Language: en-US,en;q=0.5" \ -./hosts/ranoz.sh:286: -H "Accept-Encoding: gzip, deflate, br" \ -./hosts/ranoz.sh:287: -H "Connection: keep-alive" \ -./hosts/ranoz.sh:288: -H "Cookie: lng=eng" \ -./hosts/ranoz.sh:289: -H "Upgrade-Insecure-Requests: 1" \ -./hosts/ranoz.sh:290: -H "Sec-Fetch-Dest: document" \ -./hosts/ranoz.sh:291: -H "Sec-Fetch-Mode: navigate" \ +./hosts/ranoz.sh:283: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:284: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ +./hosts/ranoz.sh:285: "$download_url" --continue-at - --output "$file_path" +./hosts/ranoz.sh:286: else +./hosts/ranoz.sh:287: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:288: "$download_url" --continue-at - --output "$file_path" +./hosts/ranoz.sh:289: fi +./hosts/ranoz.sh:290: else +./hosts/ranoz.sh:291: if [[ "${RateMonitorEnabled}" == "true" ]]; then +./hosts/ranoz.sh:292: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:293: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ +./hosts/ranoz.sh:294: -H "User-Agent: $RandomUA" \ +./hosts/ranoz.sh:295: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ +./hosts/ranoz.sh:296: -H "Accept-Language: en-US,en;q=0.5" \ +./hosts/ranoz.sh:297: -H "Accept-Encoding: gzip, deflate, br" \ +./hosts/ranoz.sh:298: -H "Connection: keep-alive" \ +./hosts/ranoz.sh:299: -H "Cookie: lng=eng" \ +./hosts/ranoz.sh:300: -H "Upgrade-Insecure-Requests: 1" \ +./hosts/ranoz.sh:301: -H "Sec-Fetch-Dest: document" \ +./hosts/ranoz.sh:302: -H "Sec-Fetch-Mode: navigate" \ -- -./hosts/ranoz.sh:296: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:297: -H "User-Agent: $RandomUA" \ -./hosts/ranoz.sh:298: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ -./hosts/ranoz.sh:299: -H "Accept-Language: en-US,en;q=0.5" \ -./hosts/ranoz.sh:300: -H "Accept-Encoding: gzip, deflate, br" \ -./hosts/ranoz.sh:301: -H "Connection: keep-alive" \ -./hosts/ranoz.sh:302: -H "Cookie: lng=eng" \ -./hosts/ranoz.sh:303: -H "Upgrade-Insecure-Requests: 1" \ -./hosts/ranoz.sh:304: -H "Sec-Fetch-Dest: document" \ -./hosts/ranoz.sh:305: -H "Sec-Fetch-Mode: navigate" \ -./hosts/ranoz.sh:306: -H "Sec-Fetch-Site: same-origin" \ +./hosts/ranoz.sh:307: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:308: -H "User-Agent: $RandomUA" \ +./hosts/ranoz.sh:309: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ +./hosts/ranoz.sh:310: -H "Accept-Language: en-US,en;q=0.5" \ +./hosts/ranoz.sh:311: -H "Accept-Encoding: gzip, deflate, br" \ +./hosts/ranoz.sh:312: -H "Connection: keep-alive" \ +./hosts/ranoz.sh:313: -H "Cookie: lng=eng" \ +./hosts/ranoz.sh:314: -H "Upgrade-Insecure-Requests: 1" \ +./hosts/ranoz.sh:315: -H "Sec-Fetch-Dest: document" \ +./hosts/ranoz.sh:316: -H "Sec-Fetch-Mode: navigate" \ +./hosts/ranoz.sh:317: -H "Sec-Fetch-Site: same-origin" \ -- ./hosts/sendnow.sh:89: response=$(tor_curl_request --insecure -L -s -b "${snow_cookie_jar}" -c "${snow_cookie_jar}" "$remote_url") ./hosts/sendnow.sh:90: if [[ "${DebugAllEnabled}" == "true" ]] ; then @@ -2276,7 +2279,7 @@ _________________________________________________________________________ ./hosts/tempsh.sh:260: -H "Sec-Fetch-User: ?1" \ -- ./hosts/torup.sh:92: response=$(tor_curl_request --insecure -L -s \ -./hosts/torup.sh:93: -c "${fdot_cookie_jar}" \ +./hosts/torup.sh:93: -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ ./hosts/torup.sh:94: "$fixed_url") ./hosts/torup.sh:95: if [[ "${DebugAllEnabled}" == "true" ]] ; then ./hosts/torup.sh:96: debugHtml "${remote_url##*/}" "torp_fetch$i" "${response}" @@ -2287,42 +2290,44 @@ _________________________________________________________________________ ./hosts/torup.sh:101: printf "\\n" ./hosts/torup.sh:102: echo -e "${RED}| Failed to extract download url [1]${NC}" -- -./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:194: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:195: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ +./hosts/torup.sh:196: -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ +./hosts/torup.sh:197: -H "Host: ktgzpea2b76u7fgemiibp4a76onyybo4fw5gbsagtm6jrjzmgivppyyd.onion" \ +./hosts/torup.sh:198: -H "Referer: $fixed_url" \ +./hosts/torup.sh:199: "$download_url" --output "$file_path" +./hosts/torup.sh:200: else +./hosts/torup.sh:201: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:202: -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ +./hosts/torup.sh:203: -H "Host: ktgzpea2b76u7fgemiibp4a76onyybo4fw5gbsagtm6jrjzmgivppyyd.onion" \ +./hosts/torup.sh:204: -H "Referer: $fixed_url" \ +./hosts/torup.sh:205: "$download_url" --output "$file_path" +./hosts/torup.sh:206: fi +./hosts/torup.sh:207: else +./hosts/torup.sh:208: if [[ "${RateMonitorEnabled}" == "true" ]]; then +./hosts/torup.sh:209: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:210: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ +./hosts/torup.sh:211: -H "User-Agent: $RandomUA" \ +./hosts/torup.sh:212: -H "Host: ktgzpea2b76u7fgemiibp4a76onyybo4fw5gbsagtm6jrjzmgivppyyd.onion" \ +./hosts/torup.sh:213: -H "Referer: $fixed_url" \ +./hosts/torup.sh:214: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ +./hosts/torup.sh:215: -H "Accept-Language: en-US,en;q=0.5" \ +./hosts/torup.sh:216: -H "Accept-Encoding: gzip, deflate, br" \ +./hosts/torup.sh:217: -H "Connection: keep-alive" \ +./hosts/torup.sh:218: -H "Upgrade-Insecure-Requests: 1" \ +./hosts/torup.sh:219: -H "Sec-Fetch-Dest: document" \ -- -./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/torup.sh:226: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/torup.sh:227: -H "User-Agent: $RandomUA" \ +./hosts/torup.sh:228: -H "Host: ktgzpea2b76u7fgemiibp4a76onyybo4fw5gbsagtm6jrjzmgivppyyd.onion" \ +./hosts/torup.sh:229: -H "Referer: $fixed_url" \ +./hosts/torup.sh:230: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ +./hosts/torup.sh:231: -H "Accept-Language: en-US,en;q=0.5" \ +./hosts/torup.sh:232: -H "Accept-Encoding: gzip, deflate, br" \ +./hosts/torup.sh:233: -H "Connection: keep-alive" \ +./hosts/torup.sh:234: -H "Upgrade-Insecure-Requests: 1" \ +./hosts/torup.sh:235: -H "Sec-Fetch-Dest: document" \ +./hosts/torup.sh:236: -H "Sec-Fetch-Mode: navigate" \ -- ./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" \ @@ -2620,6 +2625,56 @@ _________________________________________________________________________ ./hosts/uploadhive.sh:260: containsHtml=true ./hosts/uploadhive.sh:261: fi -- +./hosts/uploadscloud.sh:90: response=$(tor_curl_request --insecure -L -s -b "${upsc_cookie_jar}" -c "${upsc_cookie_jar}" "$remote_url") +./hosts/uploadscloud.sh:91: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/uploadscloud.sh:92: debugHtml "${remote_url##*/}" "upsc_dwnpage$i" "${response}" +./hosts/uploadscloud.sh:93: fi +./hosts/uploadscloud.sh:94: if [[ -z $response ]] ; then +./hosts/uploadscloud.sh:95: rm -f "${upsc_cookie_jar}"; +./hosts/uploadscloud.sh:96: if [[ $i == $maxfetchretries ]] ; then +./hosts/uploadscloud.sh:97: printf "\\n" +./hosts/uploadscloud.sh:98: echo -e "${RED}| Failed to extract download link.${NC}" +./hosts/uploadscloud.sh:99: warnAndRetryUnknownError=true +./hosts/uploadscloud.sh:100: if [[ "${finalAttempt}" == "true" ]] ; then +-- +./hosts/uploadscloud.sh:142: response=$(tor_curl_request --insecure -svo. -X POST \ +./hosts/uploadscloud.sh:143: -b "${upsc_cookie_jar}" -c "${upsc_cookie_jar}" \ +./hosts/uploadscloud.sh:144: --data-raw "$form_data" "$remote_url" 2>&1) +./hosts/uploadscloud.sh:145: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/uploadscloud.sh:146: debugHtml "${remote_url##*/}" "upsc_post" "post_action: ${post_action}"$'\n'"form_data: ${form_data}"$'\n'"${response}" +./hosts/uploadscloud.sh:147: fi +./hosts/uploadscloud.sh:148: if [[ -z $response ]] ; then +./hosts/uploadscloud.sh:149: echo -e "${RED}| Failed to extract download link [1]${NC}" +./hosts/uploadscloud.sh:150: warnAndRetryUnknownError=true +./hosts/uploadscloud.sh:151: if [[ "${finalAttempt}" == "true" ]] ; then +./hosts/uploadscloud.sh:152: rm -f "${upsc_cookie_jar}"; +-- +./hosts/uploadscloud.sh:183: file_header=$(tor_curl_request --insecure --head -L -s -b "${upsc_cookie_jar}" -c "${upsc_cookie_jar}" --referer "$remote_url" "$download_url") +./hosts/uploadscloud.sh:184: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/uploadscloud.sh:185: debugHtml "${remote_url##*/}" "upsc_head$j" "download_url: ${download_url}"$'\n'"${file_header}" +./hosts/uploadscloud.sh:186: fi +./hosts/uploadscloud.sh:187: if [[ -z $file_header ]] ; then +./hosts/uploadscloud.sh:188: if [[ $j == $maxfetchretries ]] ; then +./hosts/uploadscloud.sh:189: rm -f "${upsc_cookie_jar}"; +./hosts/uploadscloud.sh:190: printf "\\n" +./hosts/uploadscloud.sh:191: echo -e "${RED}| Failed to extract file info.${NC}" +./hosts/uploadscloud.sh:192: warnAndRetryUnknownError=true +./hosts/uploadscloud.sh:193: if [[ "${finalAttempt}" == "true" ]] ; then +-- +./hosts/uploadscloud.sh:306: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./hosts/uploadscloud.sh:307: else +./hosts/uploadscloud.sh:308: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" +./hosts/uploadscloud.sh:309: fi +./hosts/uploadscloud.sh:310: received_file_size=0 +./hosts/uploadscloud.sh:311: if [[ -f "$file_path" ]] ; then +./hosts/uploadscloud.sh:312: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./hosts/uploadscloud.sh:313: fi +./hosts/uploadscloud.sh:314: if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then +./hosts/uploadscloud.sh:315: containsHtml=false +./hosts/uploadscloud.sh:316: else +./hosts/uploadscloud.sh:317: containsHtml=true +./hosts/uploadscloud.sh:318: 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 ./hosts/up_1fichier.sh:109: debugHtml "${filepath##*/}" "${_hostCode}_up_getid_$i" "url: https://1fichier.com/"$'\n'"${response}" @@ -2656,6 +2711,18 @@ _________________________________________________________________________ ./hosts/up_anonfile.sh:111: -F "upload=Start upload" \ ./hosts/up_anonfile.sh:112: -F "keepalive=1" \ -- +./hosts/up_anonfileio.sh:102: response=$(tor_curl_upload --insecure -i \ +./hosts/up_anonfileio.sh:103: -H "Content-Type: multipart/form-data" \ +./hosts/up_anonfileio.sh:104: -F "keepalive=1" \ +./hosts/up_anonfileio.sh:105: -F "file=@${filepath}" \ +./hosts/up_anonfileio.sh:106: "${PostUrlHost}") +./hosts/up_anonfileio.sh:107: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/up_anonfileio.sh:108: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" +./hosts/up_anonfileio.sh:109: fi +./hosts/up_anonfileio.sh:110: if grep -Eqi '"success":true,"code":"' <<< "${response}" ; then +./hosts/up_anonfileio.sh:111: hash=$(grep -oPi -m 1 '(?<="code":").*?(?=".*$)' <<< "$response") +./hosts/up_anonfileio.sh:112: filesize=$(GetFileSize "$filepath" "false") +-- ./hosts/up_anonsharing.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_anonsharing.sh:103: -H "Content-Type: multipart/form-data" \ ./hosts/up_anonsharing.sh:104: -F "files[]=@${arrFiles[@]}" \ @@ -3052,29 +3119,36 @@ _________________________________________________________________________ ./hosts/up_quax.sh:111: url=$(grep -oPi '(?<="url": ").*?(?=".*$)' <<< "$response") ./hosts/up_quax.sh:112: filesize=$(GetFileSize "$filepath" "false") -- -./hosts/up_ranoz.sh:129: response=$(tor_curl_upload --insecure -L -i -s \ -./hosts/up_ranoz.sh:130: "$PostUrlHost" \ -./hosts/up_ranoz.sh:131: -H "Content-Type: application/json" \ -./hosts/up_ranoz.sh:132: -d "{ \ -./hosts/up_ranoz.sh:133: \"filename\": \"$tmpfilename\", \ -./hosts/up_ranoz.sh:134: \"size\": $fsize}") -./hosts/up_ranoz.sh:135: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./hosts/up_ranoz.sh:136: debugHtml "${filepath##*/}" "${_hostCode}_ticket" "post_url: ${PostUrlHost}"$'\n'"data: ${filepath}, ${fsize}"$'\n'"${response}" -./hosts/up_ranoz.sh:137: fi -./hosts/up_ranoz.sh:138: if grep -Eqi '"upload_url":"https://' <<< "$response" ; then -./hosts/up_ranoz.sh:139: PostUrlHost=$(grep -oPi '(?<="upload_url":").*?(?=".*$)' <<< "$response") +./hosts/up_ranoz.sh:133: response=$(tor_curl_upload --insecure -L -i -s \ +./hosts/up_ranoz.sh:134: -b "${up_rz_cookie_jar}" -c "${up_rz_cookie_jar}" \ +./hosts/up_ranoz.sh:135: "$PrePostUrl") +./hosts/up_ranoz.sh:136: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/up_ranoz.sh:137: debugHtml "${filepath##*/}" "${_hostCode}_prepost" "prepost_url: ${PrePostUrl}"$'\n'"${response}" +./hosts/up_ranoz.sh:138: fi +./hosts/up_ranoz.sh:139: trap "rm -f ${UploadTicket}; rm -f ${up_rz_cookie_jar}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 +./hosts/up_ranoz.sh:140: response=$(tor_curl_upload --insecure -Lis \ +./hosts/up_ranoz.sh:141: "$PostUrlHost" \ +./hosts/up_ranoz.sh:142: -b "${up_rz_cookie_jar}" -c "${up_rz_cookie_jar}" \ +./hosts/up_ranoz.sh:143: -H "Content-Type: application/json" \ +./hosts/up_ranoz.sh:144: -d "{ \ +./hosts/up_ranoz.sh:145: \"filename\": \"$tmpfilename\", \ +./hosts/up_ranoz.sh:146: \"size\": $fsize}") +./hosts/up_ranoz.sh:147: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/up_ranoz.sh:148: debugHtml "${filepath##*/}" "${_hostCode}_ticket" "post_url: ${PostUrlHost}"$'\n'"data: ${filepath}, ${fsize}"$'\n'"${response}" +./hosts/up_ranoz.sh:149: fi +./hosts/up_ranoz.sh:150: if grep -Eqi '"upload_url":"https://' <<< "$response" ; then -- -./hosts/up_ranoz.sh:156: response=$(tor_curl_upload --insecure -i -X PUT \ -./hosts/up_ranoz.sh:157: "${PostUrlHost}" \ -./hosts/up_ranoz.sh:158: --upload-file "$filepath" \ -./hosts/up_ranoz.sh:159: -H "Content-Length: $fsize") -./hosts/up_ranoz.sh:160: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./hosts/up_ranoz.sh:161: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" -./hosts/up_ranoz.sh:162: fi -./hosts/up_ranoz.sh:163: if grep -Eqi 'HTTP/.* 200' <<< "${response}" ; then -./hosts/up_ranoz.sh:164: filesize=$(GetFileSize "$filepath" "false") -./hosts/up_ranoz.sh:165: echo -e "${GREEN}| Upload Success${NC}" -./hosts/up_ranoz.sh:166: echo -e "| Size: ${BLUE}${filesize}${NC} bytes${NC}" +./hosts/up_ranoz.sh:169: response=$(tor_curl_upload --insecure -i -X PUT \ +./hosts/up_ranoz.sh:170: "${PostUrlHost}" \ +./hosts/up_ranoz.sh:171: --upload-file "$filepath" \ +./hosts/up_ranoz.sh:172: -b "${up_rz_cookie_jar}" -c "${up_rz_cookie_jar}" \ +./hosts/up_ranoz.sh:173: -H "Content-Length: $fsize") +./hosts/up_ranoz.sh:174: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/up_ranoz.sh:175: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" +./hosts/up_ranoz.sh:176: fi +./hosts/up_ranoz.sh:177: rm -f ${up_rz_cookie_jar}; +./hosts/up_ranoz.sh:178: if grep -Eqi 'HTTP/.* 200' <<< "${response}" ; then +./hosts/up_ranoz.sh:179: filesize=$(GetFileSize "$filepath" "false") -- ./hosts/up_sendnow.sh:101: response=$(tor_curl_request --insecure -L -s 'https://send.now/upload') ./hosts/up_sendnow.sh:102: if [[ "${DebugAllEnabled}" == "true" ]] ; then @@ -3366,235 +3440,235 @@ _________________________________________________________________________ ./hosts/youdbox.sh:287: containsHtml=true ./hosts/youdbox.sh:288: fi -- -./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:367:tor_curl_request() { +./mad.sh:368: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:369: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:370: else +./mad.sh:371: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:372: fi +./mad.sh:373:} +./mad.sh:374:tor_curl_request_extended() { +./mad.sh:375: randomtimeout=$((30 + RANDOM % (60 - 30))) +./mad.sh:376: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:377: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:378: else +./mad.sh:379: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:380: fi +./mad.sh:381:} +./mad.sh:382:tor_curl_upload() { +./mad.sh:383: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:384: if [[ "${RateMonitorEnabled}" == "true" ]]; then +./mad.sh:385: "${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:386: else +./mad.sh:387: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --expect100-timeout 10 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" +./mad.sh:388: fi +./mad.sh:389: else +./mad.sh:390: if [[ "${RateMonitorEnabled}" == "true" ]]; then +./mad.sh:391: 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:392: else -- -./mad.sh:1470: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1471: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./mad.sh:1472: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1473: fi -./mad.sh:1474: if [[ ! -z "$response" ]]; then -./mad.sh:1475: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1476: latestBinaryDate=$(grep -oPi -m 1 '(?<== MaxDownloadRetries)) ; then -./mad.sh:1549: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" -./mad.sh:1550: exit 1 +./mad.sh:1507: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1508: received_file_size=0 +./mad.sh:1509: if [[ -f "$file_path" ]] ; then +./mad.sh:1510: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:1511: fi +./mad.sh:1512: if ((received_file_size == file_size_bytes)) ; then +./mad.sh:1513: break +./mad.sh:1514: elif ((received_file_size < file_size_bytes)) ; then +./mad.sh:1515: if ((j >= MaxDownloadRetries)) ; then +./mad.sh:1516: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" +./mad.sh:1517: exit 1 -- -./mad.sh:1593: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1594: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./mad.sh:1595: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1596: fi -./mad.sh:1597: if [[ ! -z "$response" ]]; then -./mad.sh:1598: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1599: latestBinaryDate=$(grep -oPi -m 1 '(?<== MaxDownloadRetries)) ; then -./mad.sh:1672: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" -./mad.sh:1673: exit 1 +./mad.sh:1630: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1631: received_file_size=0 +./mad.sh:1632: if [[ -f "$file_path" ]] ; then +./mad.sh:1633: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:1634: fi +./mad.sh:1635: if ((received_file_size == file_size_bytes)) ; then +./mad.sh:1636: break +./mad.sh:1637: elif ((received_file_size < file_size_bytes)) ; then +./mad.sh:1638: if ((j >= MaxDownloadRetries)) ; then +./mad.sh:1639: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" +./mad.sh:1640: exit 1 -- -./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:1835: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1836: echo -e "Files:" +./mad.sh:1837: echo -e "${BLUE}${fil}${NC}" +./mad.sh:1838: echo -e "" +./mad.sh:1839: echo -e "" +./mad.sh:1840: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1841: echo -e "_________________________________________________________________________" +./mad.sh:1842: echo -e "$maud_http" +./mad.sh:1843: echo -e "" +./mad.sh:1844: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1845: echo -e "_________________________________________________________________________" +-- +./mad.sh:1848: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1849: echo -e "_________________________________________________________________________" +./mad.sh:1850: echo -e "$maud_torcurl" +./mad.sh:1851: echo -e "" +./mad.sh:1852: echo -e "" +./mad.sh:1853: done +./mad.sh:1854: else +./mad.sh:1855: cd "$ScriptDir" +./mad.sh:1856: readarray -d $'' arrFiles < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) +./mad.sh:1857: cd "$WorkDir" +./mad.sh:1858: readarray -d $'' arrFiles2 < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) +-- +./mad.sh:1863: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1864: echo -e "Files:" +./mad.sh:1865: echo -e "${BLUE}${fil}${NC}" +./mad.sh:1866: echo -e "" +./mad.sh:1867: echo -e "" +./mad.sh:1868: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1869: echo -e "_________________________________________________________________________" +./mad.sh:1870: echo -e "$maud_http" ./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:1872: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" +./mad.sh:1873: echo -e "_________________________________________________________________________" -- -./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:1876: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1877: echo -e "_________________________________________________________________________" +./mad.sh:1878: echo -e "$maud_torcurl" +./mad.sh:1879: echo -e "" +./mad.sh:1880: done +./mad.sh:1881: for fil in "${arrFiles2[@]}"; +./mad.sh:1882: do +./mad.sh:1883: maud_http=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei '(http|https):') +./mad.sh:1884: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1885: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1886: echo -e "Files:" +./mad.sh:1887: echo -e "${BLUE}${fil}${NC}" +./mad.sh:1888: echo -e "" +./mad.sh:1889: echo -e "" +./mad.sh:1890: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1891: echo -e "_________________________________________________________________________" +./mad.sh:1892: echo -e "$maud_http" +./mad.sh:1893: echo -e "" +./mad.sh:1894: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1895: 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:1898: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1899: echo -e "_________________________________________________________________________" +./mad.sh:1900: echo -e "$maud_torcurl" +./mad.sh:1901: echo -e "" +./mad.sh:1902: done +./mad.sh:1903: fi +./mad.sh:1904:} +./mad.sh:1905:madStatus() { +./mad.sh:1906: local InputFile="$1" +./mad.sh:1907: if [[ "$arg1" == "status" ]] ; then +./mad.sh:1908: clear -- -./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: 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:3231: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ +./mad.sh:3232: -H "Connection: keep-alive" \ +./mad.sh:3233: -w 'EffectiveUrl=%{url_effective}' \ +./mad.sh:3234: "$download_url") +./mad.sh:3235: else +./mad.sh:3236: printf "| Retrieving Head: attempt #$j" +./mad.sh:3237: rm -f "${WorkDir}/.temp/directhead" +./mad.sh:3238: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | +./mad.sh:3239: tee "${WorkDir}/.temp/directhead" & +./mad.sh:3240: sleep 6 +./mad.sh:3241: [ -s "${WorkDir}/.temp/directhead" ] +./mad.sh:3242: kill $! 2>/dev/null +./mad.sh:3243: ) +./mad.sh:3244: if [[ ! -f "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" ]]; then +./mad.sh:3245: touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" +./mad.sh:3246: fi +./mad.sh:3247: rm -f "${WorkDir}/.temp/directhead" +./mad.sh:3248: fi -- -./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:3375: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" +./mad.sh:3376: rc=$? +./mad.sh:3377: if ((rc != 0 )) ; then +./mad.sh:3378: printf "${RED}Download Failed (bad exit status).${NC}" +./mad.sh:3379: if [[ -f ${file_path} ]]; then +./mad.sh:3380: printf "${YELLOW} Partial removed...${NC}" +./mad.sh:3381: printf "\n\n" +./mad.sh:3382: rm -f "${file_path}" +./mad.sh:3383: else +./mad.sh:3384: printf "\n\n" +./mad.sh:3385: 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: 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:3432: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./mad.sh:3433: else +./mad.sh:3434: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" +./mad.sh:3435: fi +./mad.sh:3436: received_file_size=0 +./mad.sh:3437: if [[ -f "$file_path" ]] ; then +./mad.sh:3438: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:3439: fi +./mad.sh:3440: if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then +./mad.sh:3441: containsHtml=false +./mad.sh:3442: else +./mad.sh:3443: containsHtml=true +./mad.sh:3444: 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: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: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 +./mad.sh:3632: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3633: -H "Content-Type: multipart/form-data" \ +./mad.sh:3634: -F "key=" \ +./mad.sh:3635: -F "time=$jira_timeval" \ +./mad.sh:3636: -F "file=@${filepath}" \ +./mad.sh:3637: "${jira_PostUrlHost}") +./mad.sh:3638: else +./mad.sh:3639: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3640: -H "Content-Type: multipart/form-data" \ +./mad.sh:3641: -F "key=" \ +./mad.sh:3642: -F "time=$jira_timeval" \ +./mad.sh:3643: -F "files[]=@${arrFiles[@]}" \ +./mad.sh:3644: "${jira_PostUrlHost}") +./mad.sh:3645: fi +./mad.sh:3646: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./mad.sh:3647: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${jira_PostUrlHost}"$'\n'"${response}" +./mad.sh:3648: fi +./mad.sh:3649: if grep -Eqi ' 200 ' <<< "${response}" ; then diff --git a/documentation/!Changelog (Historical).txt b/documentation/!Changelog (Historical).txt index 7cba523..8eda818 100755 --- a/documentation/!Changelog (Historical).txt +++ b/documentation/!Changelog (Historical).txt @@ -3,6 +3,45 @@ # # ---------- Initial release with MAD Uploader functionality ---------- +# 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) +# 2025.02.21 - [anonfile] Update cdn link parsing to handle new subdomains +# 2025.02.21 - [anonfile] Add download limit reached response handling +# 2025.02.21 - [anonfile] Update file info retrieval (head no longer responds) +# 2025.02.21 - [sendspace] Add sendspace.com as download host +# 2025.02.21 - [oshi / up_oshi] Revert /nossl/ changes for oshi.at (clearnet) +# 2025.02.20 - [up_ranoz] Fixed parsing of ranoz upload link (cloudflare) +# 2025.02.20 - [sendnow] Better handling of sendnow new Tor ip blocking +# 2025.02.20 - [up_ranoz / up_uploadhive] Add obfuscation of .7z in multipart filename that was missing +# 2025.02.18 - [uploadhive] Add handling of the new /cgi-bin/dl.cgi/ url tickets (WIP) +# (unfortunately, this is tied to the requesting ip, so downloads get "Wrong IP") +# 2025.02.18 - [up_oshi] Add Manage url as comment on uploads +# 2025.02.18 - [up_oshi / oshi] use /nossl/ url and http +# 2025.02.17 - [gofile] Add a random sleep if 429 response detected (too many requests) +# 2025.02.17 - [*ALL] Audit and update all single bracket operations +# 2025.02.17 - [filehaus] Fix downloading from fh +# 2025.02.15 - [uploadbay] Update urls regex for acceptable alternate +# 2025.02.15 - [up_sendnow] Add send.now as upload host +# 2025.02.15 - [sendnow] Fix handling of filenames with special characters in url +# 2025.02.14 - [mad] Add helpful verbiage for user on MAD Randomized Extension upload urls +# 2025.02.14 - [up_ranoz] Add help "[rand ext, rename to or use MAD v2025.02.13+]" to url +# 2025.02.14 - [up_uploadhive] Add help "[rand ext, rename to or use MAD v2025.02.13+]" to url +# 2025.02.13 - [mad] Add "RanozRandomizeExt" MAD randomized extension configurable variable +# 2025.02.13 - [up_ranoz] Add MAD randomized extension upload handling +# 2025.02.13 - [ranoz] Add MAD randomized extension download handling +# 2025.02.13 - [sendnow] Extend request timeout for head / get (server response time lag) +# 2025.02.12 - [sendnow] Add send.now as download host +# 2025.02.11 - [ranoz] Fix filename (to handle fileid added to download urls) +# 2025.02.10 - [mad] Add detection of custom "Removed" response on cdn get from direct links +# 2025.02.06 - [ranoz] Add UNAVAILABLE_FOR_LEGAL_REASONS response handling +# 2025.02.04 - [mad] Add ConnectTimeoutUpload to separate configurable up/down timeouts +# 2025.02.03 - [up_lainsafe] Add pomf2.lain.la as upload host (1GB) +# 2025.02.02 - [mad] Add function to handle urlencode of cyrillic / kanji / latin / etc +# 2025.02.02 - [ranoz] Fix handling filenames containing cyrillic / kanji / latin chars +# 2025.02.02 - [all] Reduced character processing for urlencode to special url characters # 2025.01.30 - [isupload] Add handling of 404 Not Found on initial page fetch # 2025.01.23 - [mad] Do not check for supported host on "direct=" lines # 2025.01.19 - [fileditch] Add direct download url processing fileditchfiles.me (though they block Tor now) diff --git a/documentation/README-upload_hosts.txt b/documentation/README-upload_hosts.txt index 9fdf666..0d3fb4f 100755 --- a/documentation/README-upload_hosts.txt +++ b/documentation/README-upload_hosts.txt @@ -13,6 +13,7 @@ Max Size . HostCode . Nickname . Notes 20GB atea ateasystems.com ?? expiry 10GB gofile gofile.io ?? expiry 10GB tmpme tempfile.me 3mo expiry (tend to ban 7z faster) + 5GB afio anonfile.io ?? expiry 5GB uhive uploadhive ?? - 5GB uflix uploadflix.cc 7d inactive expiry 5GB fd fileditch.com (.me) ?? @@ -59,9 +60,9 @@ Max Size . HostCode . Nickname . Notes 5GB moo moocloud.ch ~1mo expiry, jirafeau - 5GB frso freesocial.co ~1mo expiry, jirafeau - 5GB squid filesquid.net ~1mo expiry, jirafeau - 5GB edd eddowding.com ~1mo expiry, jirafeau 4GB tmpsh temp.sh 3d expiry 2GB dict dictvm.org ~1mo expiry, jirafeau + 1GB edd eddowding.com ~1mo expiry, jirafeau 1GB kaz depot.kaz.bzh ~1mo expiry, jirafeau 512MB gagn fichier.gagneux.info ~1mo expiry, jirafeau 512MB herb herbolistique.com ~1mo expiry, jirafeau diff --git a/hosts/1fichier.sh b/hosts/1fichier.sh index 93af901..fce1972 100644 --- a/hosts/1fichier.sh +++ b/hosts/1fichier.sh @@ -1,6 +1,6 @@ #! Name: 1fichier.sh #! Author: kittykat -#! Version: 2024.10.06 +#! Version: 2025.03.15 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -256,6 +256,7 @@ fich_GetFile() { fi echo "${remote_url//[^a-zA-Z0-9]/}" > $flockDownload touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" + tor_identity="${RANDOM}" CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f $flockDownload; echo ""; tput cnorm; exit" 0 1 2 3 6 15 tor_curl_request --insecure -e "${remote_url}" "${target_file_link}" -C - -o "${file_path}" diff --git a/hosts/anonfileio.sh b/hosts/anonfileio.sh new file mode 100644 index 0000000..b329346 --- /dev/null +++ b/hosts/anonfileio.sh @@ -0,0 +1,43 @@ +#! Name: anonfileio.sh +#! Author: kittykat +#! Version: 2025.03.28 +#! Desc: Add support for downloading and processing of urls for a new host +#! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder +#! +#! +#! ------------ REQUIRED SECTION --------------- +#! @[UPDATE] HostAndDomainRegexes: This string is loaded into mad.sh and allows dynamic handling of new url data +#! Format: '/HostCode/HostNick/HostFuncPrefix:HostDomainRegex@' +#! HostCode: (ie. 'fh' for filehaus -- cannot be used by other hosts) +#! HostNick: What is displayed throughout MAD output (ie. 'filehaus' -- "urls.txt has 10 filehaus.." will be displayed) +#! HostFuncPrefix: (ie. 'fh' -- fh_DownloadFile(), fh_FetchFileInfo() .. ) +#! * Note: Must begin with a letter a-z (functions beginning with numbers are no bueno) +#! HostDomainRegex: The regex used to verify matching urls +HostCode='afio' +HostNick='anonfile.io' +HostFuncPrefix='afio' +HostUrls='anonfile.io' +HostDomainRegex='^(http|https)://anonfile\.io/(f/|api/download/)' +#! +#! !! DO NOT UPDATE OR REMOVE !! +#! This merges the Required HostAndDomainRegexes into mad.sh +ListHostAndDomainRegexes=${ListHostAndDomainRegexes}'/'${HostCode}'/'${HostNick}'/'${HostFuncPrefix}'/'${HostUrls}':'${HostDomainRegex}'@' +#! +#! +#! ------------ (1) Host Main Download Function --------------- # +#! +#! @REQUIRED: Host Main Download function +#! Must be named specifically as such: +#! _DownloadFile() +afio_DownloadFile() { + local pUrl="$1" + local pFileCnt="$2" + local pUrlMod="$pUrl" + local filecode="${pUrlMod##*/}" + if ! grep -Eqi '^https://anonfile.io/api/download/' <<< "${pUrlMod}" ; then + Modify to api/download + pUrlMod="https://anonfile.io/api/download/$filecode" + echo -e "[${BLUE}ModifiedUrl${NC}]: ${pUrlMod}" + fi + direct_DownloadFile "$pUrl" "$pFileCnt" "$pUrlMod" +} diff --git a/hosts/gofile.sh b/hosts/gofile.sh index 37f56da..0ca1f81 100644 --- a/hosts/gofile.sh +++ b/hosts/gofile.sh @@ -1,6 +1,6 @@ #! Name: gofile.sh #! Author: kittykat -#! Version: 2025.02.17 +#! Version: 2025.03.28 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! diff --git a/hosts/ranoz.sh b/hosts/ranoz.sh index a70c869..97cb772 100644 --- a/hosts/ranoz.sh +++ b/hosts/ranoz.sh @@ -1,6 +1,6 @@ #! Name: ranoz.sh #! Author: kittykat -#! Version: 2025.02.13 +#! Version: 2025.02.30 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -78,6 +78,8 @@ rz_DownloadFile() { rz_FetchFileInfo() { finalAttempt=$1 maxfetchretries=5 + mkdir -p "${WorkDir}/.temp" + rz_cookie_jar=$(mktemp "${WorkDir}/.temp/rz_cookies""${instance_no}"".XXXXXX") download_url="$remote_url" if grep -Eqi 'ranoz.gg/file/' <<< "$remote_url"; then echo -e "${GREEN}# Fetching download url…${NC}" @@ -86,13 +88,16 @@ rz_FetchFileInfo() { printf " ." tor_identity="${RANDOM}" CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} - trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 - response=$(tor_curl_request --insecure -L -s "$remote_url") + trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f ${rz_cookie_jar}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + response=$(tor_curl_request --insecure -L -i -s \ + -b "${rz_cookie_jar}" -c "${rz_cookie_jar}" \ + "$remote_url") if [[ "${DebugAllEnabled}" == "true" ]] ; then debugHtml "${remote_url##*/}" "rz_fetch$i" "${response}" fi if [[ -z $response ]] ; then if [[ $i == $maxfetchretries ]] ; then + rm -f "${rz_cookie_jar}"; printf "\\n" echo -e "${RED}| Failed to extract download url [1]${NC}" warnAndRetryUnknownError=true @@ -105,6 +110,7 @@ rz_FetchFileInfo() { fi fi if grep -Eqi "There is no such file|UNAVAILABLE_FOR_LEGAL_REASONS|File was deleted because" <<< "$response"; then + rm -f "${rz_cookie_jar}"; printf "\\n" echo -e "${RED}| The file was not found. It could be deleted or expired.${NC}" exitDownloadError=true @@ -112,6 +118,7 @@ rz_FetchFileInfo() { return 1 fi if grep -Eqi 'NEXT_NOT_FOUND' <<< "$response"; then + rm -f "${rz_cookie_jar}"; printf "\\n" echo -e "${RED}| The file appears to be gone (NEXT_NOT_FOUND)${NC}" exitDownloadError=true @@ -138,6 +145,7 @@ rz_FetchFileInfo() { break else if [[ $i == $maxfetchretries ]] ; then + rm -f "${rz_cookie_jar}"; printf "\\n" echo -e "${RED}| Failed to extract download url [2]${NC}" warnAndRetryUnknownError=true @@ -157,7 +165,9 @@ rz_FetchFileInfo() { printf " ." CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f ${rz_cookie_jar}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 - file_header=$(tor_curl_request --insecure --head -L -i -s "$download_url") + file_header=$(tor_curl_request --insecure --head -L -i -s \ + -b "${rz_cookie_jar}" -c "${rz_cookie_jar}" \ + "$download_url") if [[ "${DebugAllEnabled}" == "true" ]] ; then debugHtml "${remote_url##*/}" "rz_head$j" "download_url: ${download_url}"$'\n'"${file_header}" fi @@ -217,6 +227,7 @@ rz_FetchFileInfo() { fi break #Good to go here done + rm -f "${rz_cookie_jar}"; touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" if [[ ! "$filename_override" == "" ]] ; then filename="$filename_override" diff --git a/hosts/torup.sh b/hosts/torup.sh index 51685e7..ce26c85 100644 --- a/hosts/torup.sh +++ b/hosts/torup.sh @@ -1,6 +1,6 @@ #! Name: torup.sh #! Author: kittykat -#! Version: 2025.03.05 +#! Version: 2025.03.16 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -90,7 +90,7 @@ torp_FetchFileInfo() { CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f "${torp_cookie_jar}"; echo ""; tput cnorm; exit" 0 1 2 3 6 15 response=$(tor_curl_request --insecure -L -s \ - -c "${fdot_cookie_jar}" \ + -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ "$fixed_url") if [[ "${DebugAllEnabled}" == "true" ]] ; then debugHtml "${remote_url##*/}" "torp_fetch$i" "${response}" @@ -125,6 +125,7 @@ torp_FetchFileInfo() { if grep -Eqi '/file" class\="btn btn-primary btn-lg">Download Now' <<< "$response"; then printf "\\n" echo -e "${GREEN}| Download url found${NC}" + download_url=$(grep -oPi '(?<=\\"props\\":\{\}\},\\"href\\":\\").*?(?=\\"}.*$)' <<< "$response") download_url="${fixed_url}/file" break else @@ -193,11 +194,13 @@ torp_GetFile() { tor_curl_request --insecure -L -G --no-alpn \ --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ + -H "Host: ktgzpea2b76u7fgemiibp4a76onyybo4fw5gbsagtm6jrjzmgivppyyd.onion" \ -H "Referer: $fixed_url" \ "$download_url" --output "$file_path" else tor_curl_request --insecure -L -G --no-alpn \ -b "${torp_cookie_jar}" -c "${torp_cookie_jar}" \ + -H "Host: ktgzpea2b76u7fgemiibp4a76onyybo4fw5gbsagtm6jrjzmgivppyyd.onion" \ -H "Referer: $fixed_url" \ "$download_url" --output "$file_path" fi @@ -206,6 +209,7 @@ torp_GetFile() { tor_curl_request --insecure -L -G --no-alpn \ --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ -H "User-Agent: $RandomUA" \ + -H "Host: ktgzpea2b76u7fgemiibp4a76onyybo4fw5gbsagtm6jrjzmgivppyyd.onion" \ -H "Referer: $fixed_url" \ -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" \ @@ -221,6 +225,7 @@ torp_GetFile() { else tor_curl_request --insecure -L -G --no-alpn \ -H "User-Agent: $RandomUA" \ + -H "Host: ktgzpea2b76u7fgemiibp4a76onyybo4fw5gbsagtm6jrjzmgivppyyd.onion" \ -H "Referer: $fixed_url" \ -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" \ diff --git a/hosts/up_anonfileio.sh b/hosts/up_anonfileio.sh new file mode 100644 index 0000000..47d93a7 --- /dev/null +++ b/hosts/up_anonfileio.sh @@ -0,0 +1,134 @@ +#! Name: up_anonfileio.sh +#! Author: kittykat +#! Version: 2025.03.28 +#! Desc: Add support for uploading files to anonfile.de +#! Info: https://anonfile.io/f/ +#! MaxSize: 5GB +#! 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='afio' +HostNick='anonfile.io' +HostFuncPrefix='afio' +#! +#! !! 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() +afio_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=5368709120 + 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 afio_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 --------------- # +#! +afio_PostFile() { + local filepath=$1 + local _hostCode=$2 + local filename=$3 + local fileCnt=$4 + local retryCnt=$5 + local finalAttempt=$6 + local pline=${7} + UploadTicket="${WorkDir}/.flocks/upload_${_hostCode}_${filepath//[^a-zA-Z0-9]/}" + echo -e "[${YELLOW}${_hostCode}${NC}] Uploading ${GREEN}${filename}${NC}" + tor_identity="${RANDOM}" + PostUrlHost='https://anonfile.io/api/upload' + arrFiles=("$filepath") + trap "rm -f ${UploadTicket}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + response=$(tor_curl_upload --insecure -i \ + -H "Content-Type: multipart/form-data" \ + -F "keepalive=1" \ + -F "file=@${filepath}" \ + "${PostUrlHost}") + if [[ "${DebugAllEnabled}" == "true" ]] ; then + debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" + fi + if grep -Eqi '"success":true,"code":"' <<< "${response}" ; then + hash=$(grep -oPi -m 1 '(?<="code":").*?(?=".*$)' <<< "$response") + filesize=$(GetFileSize "$filepath" "false") + downloadLink="https://anonfile.io/f/$hash" + echo -e "${GREEN}| Upload Success${NC}" + echo -e "| Size: ${BLUE}${filesize}${NC} bytes${NC}" + echo -e "| Link: ${YELLOW}${downloadLink}${NC}" + successUpload "$pline" "${filepath}" "${_hostCode}" "${filesize}" "${downloadLink}" "{$response}" + return 0 + else + err=$(grep -oPi '(?<=HTTP/).*?(?=$)' <<< "$response") + if [[ "${finalAttempt}" == "true" ]] ; then + printf "\\n" + echo -e "${RED}| Upload failed. Status: ${err}${NC}" + failedRetryUpload "$pline" "${filepath}" "${_hostCode}" "Failed to upload file" "Status: $err" + exitUploadError=true + return 1 + else + return 1 + fi + fi +} +#! +#! --------------- Host Extra Functions ------------------- # +#! diff --git a/hosts/up_eddowding.sh b/hosts/up_eddowding.sh index ff58b9d..c16331c 100644 --- a/hosts/up_eddowding.sh +++ b/hosts/up_eddowding.sh @@ -1,9 +1,9 @@ #! Name: up_eddowding.sh #! Author: kittykat -#! Version: 2024.12.12 +#! Version: 2025.03.20 #! Desc: Add support for uploading files to files.eddowding.com #! Info: Files are accessible at https://address/f.php?h=&p=1 -#! MaxSize: 5GB +#! MaxSize: 1GB #! Expire: 1 Month #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -33,7 +33,7 @@ ListUploadHosts=${ListUploadHosts}'/'${HostCode}'/'${HostNick}'/'${HostFuncPrefi #! Must be named specifically as such: #! _UploadFile() edd_UploadFile() { - jira_MaxUploadSizeInBytes=5368709120 + jira_MaxUploadSizeInBytes=1073741824 jira_PostUrlHost='https://files.eddowding.com/script.php' jira_filetype=1 jira_timeval="month" diff --git a/hosts/up_nantes.sh b/hosts/up_nantes.sh index 1dd4903..4aa9d62 100644 --- a/hosts/up_nantes.sh +++ b/hosts/up_nantes.sh @@ -1,10 +1,10 @@ #! Name: up_nantes.sh #! Author: kittykat -#! Version: 2025.01.18 +#! Version: 2025.03.20 #! Desc: Add support for uploading files to fichiers.nantes.cloud #! Info: Files are accessible at https://address/f.php?h=&p=1 #! MaxSize: 10GB -#! Expire: 1 Month +#! Expire: 1 Week #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! #! diff --git a/hosts/up_ranoz.sh b/hosts/up_ranoz.sh index 0386138..3525433 100644 --- a/hosts/up_ranoz.sh +++ b/hosts/up_ranoz.sh @@ -1,6 +1,6 @@ #! Name: up_ranoz.sh #! Author: kittykat -#! Version: 2025.02.24 +#! Version: 2025.03.30 #! Desc: Add support for uploading files to bedrive.ru #! Info: Files are accessible at https://ranoz.gg/file/ #! MaxSize: 20GB @@ -96,7 +96,11 @@ rz_PostFile() { UploadTicket="${WorkDir}/.flocks/upload_${_hostCode}_${filepath//[^a-zA-Z0-9]/}" echo -e "[${YELLOW}${_hostCode}${NC}] Uploading ${GREEN}${filename}${NC}" tor_identity="${RANDOM}" - PostUrlHost='https://ranoz.gg/api/v1/files/upload_url' + mkdir -p "${WorkDir}/.temp" + up_rz_cookie_jar=$(mktemp "${WorkDir}/.temp/up_rz_cookies""${instance_no}"".XXXXXX") + PrePostUrl='https://finer-yeti-69.clerk.accounts.dev/v1/client/handshake?redirect_url=https%3A%2F%2Franoz.gg%2Fapi%2Fv1%2Ffiles%2Fupload_url&suffixed_cookies=false&__clerk_hs_reason=dev-browser-missing' + PostUrlHost='https://ranoz.gg/api/v1/files/upload_url' + RanozRandomizeExt="false" if [[ "$RanozRandomizeExt" == "true" ]] && [[ ! $filename == *.rar ]]; then randomext=$(GetSemiRandomExt) echo -e "${BLUE}MAD Randomized Extension: $randomext${NC}" @@ -122,12 +126,20 @@ rz_PostFile() { fi tmpfilename="${tmpfilepath##*/}" else - tmpfilename="${tmpfilepath##*/}" + tmpfilename="${filepath##*/}" fi local fsize=$(stat -c%s "$filepath") - trap "rm -f ${UploadTicket}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + trap "rm -f ${UploadTicket}; rm -f ${up_rz_cookie_jar}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 response=$(tor_curl_upload --insecure -L -i -s \ + -b "${up_rz_cookie_jar}" -c "${up_rz_cookie_jar}" \ + "$PrePostUrl") + if [[ "${DebugAllEnabled}" == "true" ]] ; then + debugHtml "${filepath##*/}" "${_hostCode}_prepost" "prepost_url: ${PrePostUrl}"$'\n'"${response}" + fi + trap "rm -f ${UploadTicket}; rm -f ${up_rz_cookie_jar}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + response=$(tor_curl_upload --insecure -Lis \ "$PostUrlHost" \ + -b "${up_rz_cookie_jar}" -c "${up_rz_cookie_jar}" \ -H "Content-Type: application/json" \ -d "{ \ \"filename\": \"$tmpfilename\", \ @@ -140,6 +152,7 @@ rz_PostFile() { downloadLink=$(grep -oPi '(?<=,"url":").*?(?=".*$)' <<< "$response") echo -e "${GREEN}| Upload url obtained...${NC}" else + rm -f ${up_rz_cookie_jar}; err=$(grep -oPi '(?<="errors":\[\{"message":").*?(?=".*$)' <<< "$response") if [[ "${finalAttempt}" == "true" ]] ; then printf "\\n" @@ -152,14 +165,16 @@ rz_PostFile() { fi fi arrFiles=("$filepath") - trap "rm -f ${UploadTicket}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + trap "rm -f ${UploadTicket}; echo ""; rm -f ${up_rz_cookie_jar}; tput cnorm; exit" 0 1 2 3 6 15 response=$(tor_curl_upload --insecure -i -X PUT \ "${PostUrlHost}" \ --upload-file "$filepath" \ + -b "${up_rz_cookie_jar}" -c "${up_rz_cookie_jar}" \ -H "Content-Length: $fsize") if [[ "${DebugAllEnabled}" == "true" ]] ; then debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" fi + rm -f ${up_rz_cookie_jar}; if grep -Eqi 'HTTP/.* 200' <<< "${response}" ; then filesize=$(GetFileSize "$filepath" "false") echo -e "${GREEN}| Upload Success${NC}" diff --git a/hosts/up_skrepr.sh b/hosts/up_skrepr.sh index 086f784..00af2fc 100644 --- a/hosts/up_skrepr.sh +++ b/hosts/up_skrepr.sh @@ -1,10 +1,10 @@ #! Name: up_skrepr.sh #! Author: kittykat -#! Version: 2024.11.14 +#! Version: 2025.03.20 #! Desc: Add support for uploading files to transfer.skrepr.com #! Info: Files are accessible at https://address/f.php?h=&p=1 #! MaxSize: ?? -#! Expire: 1 Week +#! Expire: 1 Month #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! #! @@ -36,7 +36,7 @@ skpr_UploadFile() { jira_MaxUploadSizeInBytes=104857600 jira_PostUrlHost='https://transfer.skrepr.com/script.php' jira_filetype=1 - jira_timeval="week" + jira_timeval="month" jira_downloadLinkPrefix='https://transfer.skrepr.com/f.php?h=' jira_UploadFile ${1} ${2} ${3} ${4} } diff --git a/hosts/uploadscloud.sh b/hosts/uploadscloud.sh new file mode 100644 index 0000000..a43b2c1 --- /dev/null +++ b/hosts/uploadscloud.sh @@ -0,0 +1,399 @@ +#! Name: uploadscloud.sh +#! Author: kittykat +#! Version: 2025.03.10 +#! Desc: Add support for downloading and processing of urls for a new host +#! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder +#! +#! +#! ------------ REQUIRED SECTION --------------- +#! @[UPDATE] HostAndDomainRegexes: This string is loaded into mad.sh and allows dynamic handling of new url data +#! Format: '/HostCode/HostNick/HostFuncPrefix:HostDomainRegex@' +#! HostCode: (ie. 'fh' for filehaus -- cannot be used by other hosts) +#! HostNick: What is displayed throughout MAD output (ie. 'filehaus' -- "urls.txt has 10 filehaus.." will be displayed) +#! HostFuncPrefix: (ie. 'fh' -- fh_DownloadFile(), fh_FetchFileInfo() .. ) +#! * Note: Must begin with a letter a-z (functions beginning with numbers are no bueno) +#! HostDomainRegex: The regex used to verify matching urls +HostCode='upsc' +HostNick='uploadscloud' +HostFuncPrefix='upsc' +HostUrls='uploadscloud.com' +HostDomainRegex='^(http|https)://(.*\.)?uploadscloud\.com' +#! +#! !! DO NOT UPDATE OR REMOVE !! +#! This merges the Required HostAndDomainRegexes into mad.sh +ListHostAndDomainRegexes=${ListHostAndDomainRegexes}'/'${HostCode}'/'${HostNick}'/'${HostFuncPrefix}'/'${HostUrls}':'${HostDomainRegex}'@' +#! +#! +#! ------------ (1) Host Main Download Function --------------- # +#! +#! @REQUIRED: Host Main Download function +#! Must be named specifically as such: +#! _DownloadFile() +upsc_DownloadFile() { + local remote_url=${1} + local file_url=${1} + local filecnt=${2} + warnAndRetryUnknownError=false + exitDownloadError=false + exitDownloadNotAvailable=false + fileAlreadyDone=false + download_inflight_path="${WorkDir}/.inflight/" + mkdir -p "$download_inflight_path" + completed_location="${WorkDir}/downloads/" + tor_identity="${RANDOM}" + finalAttempt="false" + for ((z=0; z<=$MaxUrlRetries; z++)); do + if [[ $z -eq $MaxUrlRetries ]] ; then + finalAttempt="true" + fi + CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} + trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + if upsc_FetchFileInfo $finalAttempt && upsc_GetFile "${filecnt}" $((z+1)) $finalAttempt ; then + return 0 + elif [[ $z -lt $MaxUrlRetries ]]; then + if [[ "${fileAlreadyDone}" == "true" ]] ; then + break + fi + if [[ "${warnAndRetryUnknownError}" == "true" ]] ; then + if [[ "${DebugAllEnabled}" == "true" ]] ; then + debugHtml "${remote_url##*/}" "error" "Retry due to an unknown issue: attempt #$((z+1)) of ${MaxUrlRetries}" + fi + fi + if [[ "${exitDownloadError}" == "true" || "${exitDownloadNotAvailable}" == "true" ]] ; then + if [[ "${DebugAllEnabled}" == "true" ]] ; then + debugHtml "${remote_url##*/}" "error" "Exit due to unrecoverable issue" + fi + rm -f "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" + break + fi + echo -e "\n${YELLOW}A recoverable error occurred, retry attempt $((z+1))/${MaxUrlRetries}${NC}" + sleep 3 + fi + done + rm -f "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" +} +#! +#! ------------- (2) Fetch File Info Function ----------------- # +#! +upsc_FetchFileInfo() { + finalAttempt=$1 + maxfetchretries=5 + upsc_cookie_jar="" + echo -e "${GREEN}# Fetching download link…${NC}" + for ((i=1; i<=$maxfetchretries; i++)); do + mkdir -p "${WorkDir}/.temp" + upsc_cookie_jar=$(mktemp "${WorkDir}/.temp/upsc_cookies""${instance_no}"".XXXXXX") + printf " ." + tor_identity="${RANDOM}" + CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} + trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f "${upsc_cookie_jar}"; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + response=$(tor_curl_request --insecure -L -s -b "${upsc_cookie_jar}" -c "${upsc_cookie_jar}" "$remote_url") + if [[ "${DebugAllEnabled}" == "true" ]] ; then + debugHtml "${remote_url##*/}" "upsc_dwnpage$i" "${response}" + fi + if [[ -z $response ]] ; then + rm -f "${upsc_cookie_jar}"; + if [[ $i == $maxfetchretries ]] ; then + printf "\\n" + echo -e "${RED}| Failed to extract download link.${NC}" + warnAndRetryUnknownError=true + if [[ "${finalAttempt}" == "true" ]] ; then + failedRetryDownload "${remote_url}" "" "" + fi + return 1 + else + continue + fi + fi + if grep -Eqi "There is no such file|File was deleted because|FILE NOT FOUND OR DELETED" <<< "$response"; then + rm -f "${upsc_cookie_jar}"; + printf "\\n" + echo -e "${RED}| The file was not found. It could be deleted or expired.${NC}" + exitDownloadError=true + removedDownload "${remote_url}" + return 1 + fi + if grep -Eqi 'input type="hidden" name="id" value="' <<< "$response"; then + printf "\\n" + echo -e "${GREEN}| Post link found.${NC}" + post_op=$(grep -oPi -m 1 '(?<=input type="hidden" name="op" value=").*(?=">.*$)' <<< "$response") + post_id=$(grep -oPi -m 1 '(?<=input type="hidden" name="id" value=").*(?=">.*$)' <<< "$response") + fi + if [[ -z "$post_op" ]] || [[ -z "$post_id" ]] ; then + rm -f "${upsc_cookie_jar}"; + if [[ $i == $maxfetchretries ]] ; then + printf "\\n" + echo -e "${RED}| Failed to extract download link.${NC}" + warnAndRetryUnknownError=true + if [[ "${finalAttempt}" == "true" ]] ; then + failedRetryDownload "${remote_url}" "" "" + fi + return 1 + else + continue + fi + else + break + fi + done + CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} + trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; echo ""; rm -f $upsc_cookie_jar; tput cnorm; exit" 0 1 2 3 6 15 + form_data="op=$post_op&id=$post_id&rand=&referer=&method_free=&method_premium=" + response=$(tor_curl_request --insecure -svo. -X POST \ + -b "${upsc_cookie_jar}" -c "${upsc_cookie_jar}" \ + --data-raw "$form_data" "$remote_url" 2>&1) + if [[ "${DebugAllEnabled}" == "true" ]] ; then + debugHtml "${remote_url##*/}" "upsc_post" "post_action: ${post_action}"$'\n'"form_data: ${form_data}"$'\n'"${response}" + fi + if [[ -z $response ]] ; then + echo -e "${RED}| Failed to extract download link [1]${NC}" + warnAndRetryUnknownError=true + if [[ "${finalAttempt}" == "true" ]] ; then + rm -f "${upsc_cookie_jar}"; + failedRetryDownload "${remote_url}" "Failed to extract download link [1]" "" + fi + return 1 + fi + if grep -Eqi "File Not Found" <<< "$response"; then + echo -e "${RED}| The file was not found. It could be deleted or expired.${NC}" + rm -f "${upsc_cookie_jar}"; + exitDownloadError=true + removedDownload "${remote_url}" + return 1 + fi + if grep -Eqi 'Location: http' <<< "$response"; then + download_url=$(grep -oPi '(?<=Location: ).*$' <<< "$response") + download_url=${download_url//[$'\t\r\n']} + filename=${download_url##*/} + fi + if [[ -z "$download_url" ]]; then + echo -e "${RED}| Failed to extract download link [2]${NC}" + warnAndRetryUnknownError=true + if [[ "${finalAttempt}" == "true" ]] ; then + rm -f "${upsc_cookie_jar}"; + failedRetryDownload "${remote_url}" "Failed to extract download link [2]" "" + fi + return 1 + fi + echo -e "${GREEN}# Fetching file info…${NC}" + for ((j=1; j<=$maxfetchretries; j++)); do + printf " ." + CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} + trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f ${upsc_cookie_jar}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + file_header=$(tor_curl_request --insecure --head -L -s -b "${upsc_cookie_jar}" -c "${upsc_cookie_jar}" --referer "$remote_url" "$download_url") + if [[ "${DebugAllEnabled}" == "true" ]] ; then + debugHtml "${remote_url##*/}" "upsc_head$j" "download_url: ${download_url}"$'\n'"${file_header}" + fi + if [[ -z $file_header ]] ; then + if [[ $j == $maxfetchretries ]] ; then + rm -f "${upsc_cookie_jar}"; + printf "\\n" + echo -e "${RED}| Failed to extract file info.${NC}" + warnAndRetryUnknownError=true + if [[ "${finalAttempt}" == "true" ]] ; then + failedRetryDownload "${remote_url}" "" "" + fi + return 1 + else + continue + fi + fi + if grep -Eqi '404 Not Found' <<< "$file_header"; then + rm -f "${upsc_cookie_jar}"; + printf "\\n" + echo -e "${RED}| Failed to extract file info.${NC}" + warnAndRetryUnknownError=true + if [[ "${finalAttempt}" == "true" ]] ; then + failedRetryDownload "${remote_url}" "" "" + fi + return 1 + fi + if ! grep -Eqi 'HTTP/2 200|HTTP/1.1 200|200 OK' <<< $file_header ; then + if [[ $j == $maxfetchretries ]] ; then + rm -f "${upsc_cookie_jar}"; + printf "\\n" + echo -e "${RED}| Failed to extract file info${NC}" + warnAndRetryUnknownError=true + if [[ "${finalAttempt}" == "true" ]] ; then + failedRetryDownload "${remote_url}" "" "" + fi + return 1 + else + continue + fi + fi + if [[ "$filename_override" == "" ]] && [[ -z "$filename" ]] ; then + if [[ $j == $maxfetchretries ]] ; then + rm -f "${upsc_cookie_jar}"; + printf "\\n" + echo -e "${RED}| Failed to extract file name${NC}" + warnAndRetryUnknownError=true + if [[ "${finalAttempt}" == "true" ]] ; then + failedRetryDownload "${remote_url}" "Failed to extract file name" "" + fi + return 1 + else + continue + fi + fi + file_size_bytes=$(grep -oPi '(?<=content-length: ).*' <<< "$file_header") + file_size_bytes=${file_size_bytes//[$'\t\r\n']} + if [[ -z "$file_size_bytes" ]]; then + if [[ $j == $maxfetchretries ]] ; then + rm -f "${upsc_cookie_jar}"; + printf "\\n" + echo -e "${RED}| Failed to extract file size${NC}" + warnAndRetryUnknownError=true + if [[ "${finalAttempt}" == "true" ]] ; then + failedRetryDownload "${remote_url}" "Failed to extract file size" "" + fi + return 1 + else + tor_identity="${RANDOM}" + continue + fi + fi + break #Good to go here + done + rm -f "${upsc_cookie_jar}"; + touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" + if [[ ! "$filename_override" == "" ]] ; then + filename="$filename_override" + fi + filename=$(sanitize_file_or_folder_name "${filename}") + printf "\\n" + echo -e "${YELLOW}| File name:${NC}\t\"${filename}\"" + if [[ -z $file_size_bytes ]] ; then + if [[ "${finalAttempt}" == "true" ]] ; then + failedRetryDownload "${remote_url}" "Filesize not found!" "" + fi + echo -e "${YELLOW}| Filesize not found… retry${NC}" + return 1 + else + file_size_readable="$(numfmt --to=iec --from=auto --format "%.2f" <<< "$file_size_bytes")" + fi + echo -e "${YELLOW}| File size:${NC}\t${file_size_readable}" + file_path="${download_inflight_path}${filename}" + flockDownload="${WorkDir}/.flocks/${filename//[^a-zA-Z0-9\.\_\-]/}.flock" + if CheckFileSize "${remote_url}" "${file_size_bytes}" ; then + return 1 + fi + if CheckDownloadExists "$remote_url" "$MoveToFolder" "$filecnt" "$filename" "$file_path" "$completed_location" ; then + return 1 + fi + echo "${remote_url//[^a-zA-Z0-9]/}" > $flockDownload +} +#! +#! ----------- (3) Fetch File / Download File Function --------------- # +#! +upsc_GetFile() { + echo -e "${GREEN}# Downloading…${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" + for ((j=1; j<=$MaxDownloadRetries; j++)); do + pd_presize=0 + if [[ -f "$file_path" ]] ; then + pd_presize=$(stat --format="%s" "$file_path" | tr -d '[:space:]') + fi + GetRandomUA + tor_identity="${RANDOM}" # CANNOT CHANGE FOR UPEE -- will fail + CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} + trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f $flockDownload; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + if [[ "${RateMonitorEnabled}" == "true" ]]; then + tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" + else + tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" + fi + received_file_size=0 + if [[ -f "$file_path" ]] ; then + received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') + fi + if CheckNoHtml "$remote_url" "$filename" "$file_path" "$((received_file_size - pd_presize))" ; then + containsHtml=false + else + containsHtml=true + fi + downDelta=$(( received_file_size - pd_presize )) + if [[ "${received_file_size}" -ne "${file_size_bytes}" ]] || [[ "$containsHtml" == "true" ]]; then + if [[ "${AutoRepairBadPartials}" == "true" ]] && (( downDelta > 0 && downDelta < 1024 )) ; then + if [[ -f "${file_path}" ]] ; then + if ((pd_presize > 0)); then + echo -e "${YELLOW}Bad node / HTML found:${NC} reverting to previous file..." + truncateDownload "$remote_url" "$filename" "$pd_presize" "$received_file_size" + truncate -s $pd_presize "${file_path}" + else + echo -e "${YELLOW}Bad node / HTML found:${NC} tainted partial removed..." + rm -f "${file_path}" + fi + fi + if ((j >= $MaxDownloadRetries)) ; then + rm -f "$flockDownload"; + if [[ "${finalAttempt}" == "true" ]] ; then + droppedSizeBadDownload "${remote_url}" "${filename}" "${received_file_size}" + fi + return 1 + else + continue + fi + elif [[ "${AutoRepairBadPartials}" == "true" ]] && [[ "$containsHtml" == "true" ]] ; then + if [[ -f "${file_path}" ]] ; then + if ((pd_presize > 0)); then + echo -e "${YELLOW}Bad node / HTML found:${NC} reverting to previous file..." + truncateDownload "$remote_url" "$filename" "$pd_presize" "$received_file_size" + truncate -s $pd_presize "${file_path}" + else + echo -e "${YELLOW}Bad node / HTML found:${NC} tainted partial removed..." + rm -f "${file_path}" + fi + fi + if ((j >= $MaxDownloadRetries)) ; then + rm -f "$flockDownload"; + if [[ "${finalAttempt}" == "true" ]] ; then + droppedSizeBadDownload "${remote_url}" "${filename}" "${received_file_size}" + fi + return 1 + else + continue + fi + elif (( downDelta > 0 && downDelta < 1024 )) || [[ "$containsHtml" == "true" ]] ; then + if [[ -f "$file_path" ]] ; then + rm -rf "$file_path" + fi + echo -e "\n${YELLOW}Bad node / HTML found:${NC} tainted partial removed..." + if ((j >= $MaxDownloadRetries)) ; then + rm -f "$flockDownload"; + if [[ "${finalAttempt}" == "true" ]] ; then + droppedSizeBadDownload "${remote_url}" "${filename}" "${received_file_size}" + fi + return 1 + else + continue + fi + fi + if [[ "${received_file_size}" -ne "${file_size_bytes}" ]]; then + echo -e "\n${RED}Download failed, file is incomplete.${NC}" + if ((j >= $MaxDownloadRetries)) ; then + rm -f "$flockDownload"; + if [[ "${finalAttempt}" == "true" ]] ; then + droppedSizeBadDownload "${remote_url}" "${filename}" "${received_file_size}" + fi + return 1 + else + continue + fi + fi + else + break + fi + done + rm -f "$flockDownload"; + rm -f "${upsc_cookie_jar}"; + ProcessCompletedDownload "$remote_url" "$MoveToFolder" "$filecnt" "$filename" "$file_size_bytes" "$completed_location" "$file_path" + return 0 +} +#! +#! --------------- Host Extra Functions ------------------- # +#! diff --git a/mad.sh b/mad.sh index 09828e2..d4e0bcf 100644 --- a/mad.sh +++ b/mad.sh @@ -30,9 +30,19 @@ # # * Everyone who provided feedback and helped test.. and those who wish to remain anonymous -ScriptVersion=2025.03.08 +ScriptVersion=2025.03.30 #================================================= # Recent Additions +# 2025.03.30 - [ranoz] Fix to handle new cookie requirements +# 2025.03.28 - [up_ranoz] Fix to handle new cookie requirement +# 2025.03.28 - [up_anonfileio] Add anonfile.io as upload host +# 2025.03.28 - [anonfileio] Add anonfile.io as download host +# 2025.03.25 - [up_ranoz] Disable MAD randomized extension on uploads (7z block disabled) +# 2025.03.21 - [mad] Update random user agents 2025.03 +# 2025.03.20 - [jira hosts] Update 3 jira hosts (retention and maxsize) +# 2025.03.16 - [torup] Fix torup cookies +# 2025.03.15 - [1fichier] Get new node prior to cdn download (greater possibility of a faster node) +# 2025.03.10 - [uploadscloud] Add uploadscloud.com as download host # 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 @@ -41,45 +51,6 @@ ScriptVersion=2025.03.08 # 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) -# 2025.02.21 - [anonfile] Update cdn link parsing to handle new subdomains -# 2025.02.21 - [anonfile] Add download limit reached response handling -# 2025.02.21 - [anonfile] Update file info retrieval (head no longer responds) -# 2025.02.21 - [sendspace] Add sendspace.com as download host -# 2025.02.21 - [oshi / up_oshi] Revert /nossl/ changes for oshi.at (clearnet) -# 2025.02.20 - [up_ranoz] Fixed parsing of ranoz upload link (cloudflare) -# 2025.02.20 - [sendnow] Better handling of sendnow new Tor ip blocking -# 2025.02.20 - [up_ranoz / up_uploadhive] Add obfuscation of .7z in multipart filename that was missing -# 2025.02.18 - [uploadhive] Add handling of the new /cgi-bin/dl.cgi/ url tickets (WIP) -# (unfortunately, this is tied to the requesting ip, so downloads get "Wrong IP") -# 2025.02.18 - [up_oshi] Add Manage url as comment on uploads -# 2025.02.18 - [up_oshi / oshi] use /nossl/ url and http -# 2025.02.17 - [gofile] Add a random sleep if 429 response detected (too many requests) -# 2025.02.17 - [*ALL] Audit and update all single bracket operations -# 2025.02.17 - [filehaus] Fix downloading from fh -# 2025.02.15 - [uploadbay] Update urls regex for acceptable alternate -# 2025.02.15 - [up_sendnow] Add send.now as upload host -# 2025.02.15 - [sendnow] Fix handling of filenames with special characters in url -# 2025.02.14 - [mad] Add helpful verbiage for user on MAD Randomized Extension upload urls -# 2025.02.14 - [up_ranoz] Add help "[rand ext, rename to or use MAD v2025.02.13+]" to url -# 2025.02.14 - [up_uploadhive] Add help "[rand ext, rename to or use MAD v2025.02.13+]" to url -# 2025.02.13 - [mad] Add "RanozRandomizeExt" MAD randomized extension configurable variable -# 2025.02.13 - [up_ranoz] Add MAD randomized extension upload handling -# 2025.02.13 - [ranoz] Add MAD randomized extension download handling -# 2025.02.13 - [sendnow] Extend request timeout for head / get (server response time lag) -# 2025.02.12 - [sendnow] Add send.now as download host -# 2025.02.11 - [ranoz] Fix filename (to handle fileid added to download urls) -# 2025.02.10 - [mad] Add detection of custom "Removed" response on cdn get from direct links -# 2025.02.06 - [ranoz] Add UNAVAILABLE_FOR_LEGAL_REASONS response handling -# 2025.02.04 - [mad] Add ConnectTimeoutUpload to separate configurable up/down timeouts -# 2025.02.03 - [up_lainsafe] Add pomf2.lain.la as upload host (1GB) -# 2025.02.02 - [mad] Add function to handle urlencode of cyrillic / kanji / latin / etc -# 2025.02.02 - [ranoz] Fix handling filenames containing cyrillic / kanji / latin chars -# 2025.02.02 - [all] Reduced character processing for urlencode to special url characters # -- See ./documentation/!Changelog (Historical).txt for further changes -- # @@ -432,16 +403,16 @@ SetEnabledUploadHosts() { lstEnabledUploadHosts+="up_pixeldrain,up_quax,up_ranoz,up_skrepr,up_torup,up_turboonion,up_uploadee," 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" + lstEnabledUploadHosts+="up_gagneux,up_uwabaki,up_lainsafe,up_sendnow,up_sendspace,up_anonfileio" 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_nippy,up_nofile,up_offshorecat,up_oshi,up_pixeldrain,up_quax,up_ranoz,up_eddowding," 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,up_sendspace" + lstEnabledUploadHosts+="up_gagneux,up_uwabaki,up_lainsafe,up_sendnow,up_sendspace,up_anonfileio" fi } SetEnabledDownloadHosts() { @@ -454,7 +425,7 @@ SetEnabledDownloadHosts() { 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" + lstEnabledDownloadHosts+="blackcloud_onion,uploadscloud,anonfileio" elif [[ "$EnabledDownloadHosts" == "online" ]] ; then lstEnabledDownloadHosts="1fichier,anonsharing,bedrive,biteblob,bowfile,click,cyssoux," lstEnabledDownloadHosts+="dailyuploads,dataupload,depotkaz,dictvm,dosya,downloadgg,eddowding,eternalhosting," @@ -464,7 +435,8 @@ SetEnabledDownloadHosts() { lstEnabledDownloadHosts+="oshi,pixeldrain,quax,ranoz,shareonline,skrepr,tempfileme,tempsh,torup," 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" + lstEnabledDownloadHosts+="fireget,euromussels,ramsgaard,uwabaki,gagneux,sendnow,sendspace,blackcloud_onion," + lstEnabledDownloadHosts+="uploadscloud,anonfileio" fi } GetRandomFiledotUser() { @@ -1239,17 +1211,13 @@ sleepRandomMins() { sleep $((minWait + RANDOM % (maxWait - minWait)))m } GetRandomUA() { - ar_UA[0]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.3" - ar_UA[1]="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.3" - ar_UA[2]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0" - ar_UA[3]="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0" - ar_UA[4]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.3" - ar_UA[5]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.4" - ar_UA[6]="Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" - ar_UA[7]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0" - ar_UA[8]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0" - ar_UA[9]="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0" - ar_UA[10]="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:115.0) Gecko/20100101 Firefox/115.0" + ar_UA[0]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.3" + ar_UA[1]="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1.1 Safari/605.1.1" + ar_UA[2]="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.1" + ar_UA[3]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0" + ar_UA[4]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0" + ar_UA[5]="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0" + ar_UA[6]="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0" arrSize=${#ar_UA[@]} index=$(($RANDOM % $arrSize)) RandomUA=${ar_UA[$index]} diff --git a/uploads.txt b/uploads.txt index 450e28d..62a8dde 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 300MB ss sendspace.com +# 100GB snow send.now 300MB ss sendspace.com 5GG afio anonfile.io # 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