diff --git a/.audit/mad-audit-curl.log b/.audit/mad-audit-curl.log index 9f707a6..f2799c1 100755 --- a/.audit/mad-audit-curl.log +++ b/.audit/mad-audit-curl.log @@ -1,4 +1,4 @@ -DateTime: 25.01.15 +DateTime: 25.01.18 Files: ./hosts/1fichier.sh @@ -140,6 +140,7 @@ Files: ./hosts/up_uploadflix.sh ./hosts/up_uploadhive.sh ./hosts/up_uploadraja.sh +./hosts/up_uwabaki.sh ./hosts/up_yolobit.sh ./hosts/uwabaki.sh ./hosts/yolobit.sh @@ -352,11 +353,11 @@ _________________________________________________________________________ ./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:157: file_header=$(tor_curl_request --insecure --head -L -i -s "$download_url") -./hosts/ranoz.sh:264: if [ "${UseTorCurlImpersonate}" == "true" ]; then -./hosts/ranoz.sh:266: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:270: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:275: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:290: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:267: if [ "${UseTorCurlImpersonate}" == "true" ]; then +./hosts/ranoz.sh:269: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:273: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:278: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:293: tor_curl_request --insecure -L -G --no-alpn \ ./hosts/syspro.sh:88: response=$(tor_curl_request --insecure -L -s "$remote_url") ./hosts/syspro.sh:186: if [ "${UseTorCurlImpersonate}" == "true" ]; then ./hosts/syspro.sh:188: tor_curl_request --insecure -L \ @@ -466,125 +467,126 @@ _________________________________________________________________________ ./hosts/up_uploadflix.sh:106: response=$(tor_curl_upload --insecure -i \ ./hosts/up_uploadhive.sh:128: response=$(tor_curl_upload --insecure -i \ ./hosts/up_uploadraja.sh:102: response=$(tor_curl_upload --insecure -i \ +./hosts/up_uwabaki.sh:101: response=$(tor_curl_upload --insecure -i -L \ ./hosts/up_yolobit.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/youdbox.sh:95: response=$(tor_curl_request --insecure -L -i -s "${fixed_url}") ./hosts/youdbox.sh:141: response=$(tor_curl_request --insecure -L -s -X POST --data "$form_data" "${fixed_url}") ./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:114:UseTorCurlImpersonate=false -./mad.sh:405:tor_curl_request() { -./mad.sh:406: if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:407: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:409: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:412:tor_curl_request_extended() { +./mad.sh:122:UseTorCurlImpersonate=false +./mad.sh:413:tor_curl_request() { ./mad.sh:414: if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:415: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:417: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:420:tor_curl_upload() { -./mad.sh:421: if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:423: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" -./mad.sh:425: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:429: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --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:431: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} -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:1382:install_curl_impersonate() { -./mad.sh:1384: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original dev, but it is relatively inactive." -./mad.sh:1385: echo -e "- Currently uses curl v8.1.1." -./mad.sh:1389: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." -./mad.sh:1390: echo -e "+ Currently uses curl v8.7.1" -./mad.sh:1394: PS3='Please select which curl_impersonate to install: ' -./mad.sh:1402: install_curl_impersonate_lwthiker_orig -./mad.sh:1406: install_curl_impersonate_lexiforest_fork -./mad.sh:1416:install_curl_impersonate_lwthiker_orig() { -./mad.sh:1420: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original curl_impersonate." -./mad.sh:1421: echo -e "+ Currently uses curl v8.1.1, and has low activity for updates" -./mad.sh:1424: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lwthiker curl_impersonate${NC} info from github...${NC}" -./mad.sh:1427: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1429: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1432: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1442: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { -./mad.sh:1444: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1447: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") -./mad.sh:1449: debugHtml "github" "head_inst_curlimp$j" "${file_header}" -./mad.sh:1497: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" -./mad.sh:1526: echo -e "| Extracting curl_impersonate..." -./mad.sh:1528: rm -f "${ScriptDir}"/curl* -./mad.sh:1529: mv "$extract_location/curl-impersonate-ff" "${ScriptDir}/" -./mad.sh:1530: mv "$extract_location/curl_ff109" "${ScriptDir}/" -./mad.sh:1531: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." -./mad.sh:1539:install_curl_impersonate_lexiforest_fork() { -./mad.sh:1543: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." -./mad.sh:1544: echo -e "+ Currently uses curl v8.7.1, and is patched for latest CVEs" -./mad.sh:1547: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lexiforest curl_impersonate fork${NC} info from github...${NC}" -./mad.sh:1550: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1552: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1555: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1565: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { -./mad.sh:1567: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1570: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") -./mad.sh:1572: debugHtml "github" "head_inst_curlimp$j" "${file_header}" -./mad.sh:1620: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" -./mad.sh:1649: echo -e "| Extracting curl_impersonate..." -./mad.sh:1651: rm -f "${ScriptDir}"/curl* -./mad.sh:1652: mv "$extract_location/curl-impersonate-chrome" "${ScriptDir}/" -./mad.sh:1653: mv "$extract_location/curl_chrome131" "${ScriptDir}/" -./mad.sh:1654: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." -./mad.sh:1816: echo -e ":${NC} ${GREEN}MAD${PINK} Audit${NC} : Reports usage of http & curl in scripts${PINK}${BLD} :" -./mad.sh:1824: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1825: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1834: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1836: echo -e "$maud_curl" -./mad.sh:1838: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1840: echo -e "$maud_torcurl" -./mad.sh:1852: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1853: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1862: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" -./mad.sh:1864: echo -e "$maud_curl" -./mad.sh:1866: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1868: echo -e "$maud_torcurl" -./mad.sh:1874: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1875: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1884: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1886: echo -e "$maud_curl" -./mad.sh:1888: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1890: echo -e "$maud_torcurl" -./mad.sh:2837: if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:2838: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" -./mad.sh:2840: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" -./mad.sh:3012: if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:3013: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" -./mad.sh:3015: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" -./mad.sh:3213: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ -./mad.sh:3220: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | -./mad.sh:3350: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" -./mad.sh:3394: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./mad.sh:3396: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" -./mad.sh:3594: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3601: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3672:if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:3673: curl_impersonate=() -./mad.sh:3674: readarray -d $'' arrFiles < <(find "$ScriptDir" -maxdepth 1 -name "curl_*" -printf '%p\n' | sort -Vk1) -./mad.sh:3675: bFoundCurlHeader=false -./mad.sh:3679: curl_impersonate=($fil) -./mad.sh:3680: bFoundCurlHeader=true -./mad.sh:3684: if [ "$bFoundCurlHeader" == "false" ]; then -./mad.sh:3685: echo -e "${RED}[ERROR] Missing dependency \"curl-impersonate\"!${NC}" -./mad.sh:3688: echo -e "You'll need to download ${GREEN}\"curl-impersonate\"${NC}." -./mad.sh:3691: echo -e "The latest binary can be obtained on GitHub, search for \"curl-impersonate\"" -./mad.sh:3693: echo -e " 1. Visit the page of curl-impersonate and add \"/releases/latest/\" at end of URL." -./mad.sh:3697: echo -e " 4. Download archive ${GREEN}\"curl-impersonate-vX.Y.Z.x86_64-linux-gnu.tar.gz\"${YELLOW}." -./mad.sh:3698: echo -e " 5. Extract files ${GREEN}\"curl-impersonate-ff\"${NC} and ${GREEN}\"curl_ff109\"${NC} next to this script." -./mad.sh:3701: echo -e "run $0 install_curl_impersonate\\n" -./mad.sh:3703: yes_or_no "Do you wish to download and extract latest curl_impersonate (using tor+curl)?" && { -./mad.sh:3704: UseTorCurlImpersonate=false -./mad.sh:3705: install_curl_impersonate -./mad.sh:3789: echo -e "[${YELLOW}Install curl_impersonate${NC}]: Downloads the latest binary for curl_impersonate from github repo (3 choices)" -./mad.sh:3790: printf " %s install_curl_impersonate\\n" "$0" -./mad.sh:3868:elif [[ "$arg1" == "install_curl_impersonate" ]]; then -./mad.sh:3869: install_curl_impersonate -./mad.sh:3900:if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:3901: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" -./mad.sh:3903: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:415: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:417: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:420:tor_curl_request_extended() { +./mad.sh:422: if [ "${UseTorCurlImpersonate}" == "true" ]; then +./mad.sh:423: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:425: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:428:tor_curl_upload() { +./mad.sh:429: if [ "${UseTorCurlImpersonate}" == "true" ]; then +./mad.sh:431: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" +./mad.sh:433: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:437: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --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:439: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} -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:1395:install_curl_impersonate() { +./mad.sh:1397: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original dev, but it is relatively inactive." +./mad.sh:1398: echo -e "- Currently uses curl v8.1.1." +./mad.sh:1402: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." +./mad.sh:1403: echo -e "+ Currently uses curl v8.7.1" +./mad.sh:1407: PS3='Please select which curl_impersonate to install: ' +./mad.sh:1415: install_curl_impersonate_lwthiker_orig +./mad.sh:1419: install_curl_impersonate_lexiforest_fork +./mad.sh:1429:install_curl_impersonate_lwthiker_orig() { +./mad.sh:1433: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original curl_impersonate." +./mad.sh:1434: echo -e "+ Currently uses curl v8.1.1, and has low activity for updates" +./mad.sh:1437: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lwthiker curl_impersonate${NC} info from github...${NC}" +./mad.sh:1440: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) +./mad.sh:1442: debugHtml "github" "lbf_inst_curlimp$j" "$response" +./mad.sh:1445: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") +./mad.sh:1455: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { +./mad.sh:1457: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1460: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") +./mad.sh:1462: debugHtml "github" "head_inst_curlimp$j" "${file_header}" +./mad.sh:1510: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1539: echo -e "| Extracting curl_impersonate..." +./mad.sh:1541: rm -f "${ScriptDir}"/curl* +./mad.sh:1542: mv "$extract_location/curl-impersonate-ff" "${ScriptDir}/" +./mad.sh:1543: mv "$extract_location/curl_ff109" "${ScriptDir}/" +./mad.sh:1544: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." +./mad.sh:1552:install_curl_impersonate_lexiforest_fork() { +./mad.sh:1556: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." +./mad.sh:1557: echo -e "+ Currently uses curl v8.7.1, and is patched for latest CVEs" +./mad.sh:1560: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lexiforest curl_impersonate fork${NC} info from github...${NC}" +./mad.sh:1563: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) +./mad.sh:1565: debugHtml "github" "lbf_inst_curlimp$j" "$response" +./mad.sh:1568: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") +./mad.sh:1578: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { +./mad.sh:1580: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1583: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") +./mad.sh:1585: debugHtml "github" "head_inst_curlimp$j" "${file_header}" +./mad.sh:1633: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1662: echo -e "| Extracting curl_impersonate..." +./mad.sh:1664: rm -f "${ScriptDir}"/curl* +./mad.sh:1665: mv "$extract_location/curl-impersonate-chrome" "${ScriptDir}/" +./mad.sh:1666: mv "$extract_location/curl_chrome131" "${ScriptDir}/" +./mad.sh:1667: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." +./mad.sh:1829: echo -e ":${NC} ${GREEN}MAD${PINK} Audit${NC} : Reports usage of http & curl in scripts${PINK}${BLD} :" +./mad.sh:1837: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1838: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1847: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1849: echo -e "$maud_curl" +./mad.sh:1851: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1853: echo -e "$maud_torcurl" +./mad.sh:1865: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1866: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1875: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" +./mad.sh:1877: echo -e "$maud_curl" +./mad.sh:1879: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1881: echo -e "$maud_torcurl" +./mad.sh:1887: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1888: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1897: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1899: echo -e "$maud_curl" +./mad.sh:1901: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1903: echo -e "$maud_torcurl" +./mad.sh:2850: if [ "${UseTorCurlImpersonate}" == "true" ]; then +./mad.sh:2851: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:2853: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:3025: if [ "${UseTorCurlImpersonate}" == "true" ]; then +./mad.sh:3026: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:3028: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:3226: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ +./mad.sh:3233: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | +./mad.sh:3363: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" +./mad.sh:3407: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./mad.sh:3409: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" +./mad.sh:3607: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3614: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3685:if [ "${UseTorCurlImpersonate}" == "true" ]; then +./mad.sh:3686: curl_impersonate=() +./mad.sh:3687: readarray -d $'' arrFiles < <(find "$ScriptDir" -maxdepth 1 -name "curl_*" -printf '%p\n' | sort -Vk1) +./mad.sh:3688: bFoundCurlHeader=false +./mad.sh:3692: curl_impersonate=($fil) +./mad.sh:3693: bFoundCurlHeader=true +./mad.sh:3697: if [ "$bFoundCurlHeader" == "false" ]; then +./mad.sh:3698: echo -e "${RED}[ERROR] Missing dependency \"curl-impersonate\"!${NC}" +./mad.sh:3701: echo -e "You'll need to download ${GREEN}\"curl-impersonate\"${NC}." +./mad.sh:3704: echo -e "The latest binary can be obtained on GitHub, search for \"curl-impersonate\"" +./mad.sh:3706: echo -e " 1. Visit the page of curl-impersonate and add \"/releases/latest/\" at end of URL." +./mad.sh:3710: echo -e " 4. Download archive ${GREEN}\"curl-impersonate-vX.Y.Z.x86_64-linux-gnu.tar.gz\"${YELLOW}." +./mad.sh:3711: echo -e " 5. Extract files ${GREEN}\"curl-impersonate-ff\"${NC} and ${GREEN}\"curl_ff109\"${NC} next to this script." +./mad.sh:3714: echo -e "run $0 install_curl_impersonate\\n" +./mad.sh:3716: yes_or_no "Do you wish to download and extract latest curl_impersonate (using tor+curl)?" && { +./mad.sh:3717: UseTorCurlImpersonate=false +./mad.sh:3718: install_curl_impersonate +./mad.sh:3802: echo -e "[${YELLOW}Install curl_impersonate${NC}]: Downloads the latest binary for curl_impersonate from github repo (3 choices)" +./mad.sh:3803: printf " %s install_curl_impersonate\\n" "$0" +./mad.sh:3881:elif [[ "$arg1" == "install_curl_impersonate" ]]; then +./mad.sh:3882: install_curl_impersonate +./mad.sh:3913:if [ "${UseTorCurlImpersonate}" == "true" ]; then +./mad.sh:3914: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:3916: 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 f89e6d4..f5906fa 100755 --- a/.audit/mad-audit-http.log +++ b/.audit/mad-audit-http.log @@ -1,4 +1,4 @@ -DateTime: 25.01.15 +DateTime: 25.01.18 Files: ./hosts/1fichier.sh @@ -140,6 +140,7 @@ Files: ./hosts/up_uploadflix.sh ./hosts/up_uploadhive.sh ./hosts/up_uploadraja.sh +./hosts/up_uwabaki.sh ./hosts/up_yolobit.sh ./hosts/uwabaki.sh ./hosts/yolobit.sh @@ -424,76 +425,79 @@ _________________________________________________________________________ ./hosts/up_uploadhive.sh:149: downloadLink="https://uploadhive.com/${hash}" ./hosts/up_uploadraja.sh:99: PostUrlHost='https://awsaisiaposisition69.kalpstudio.xyz/cgi-bin/upload.cgi?upload_type=file&utype=anon' ./hosts/up_uploadraja.sh:119: downloadLink="https://uploadraja.com/$hash" +./hosts/up_uwabaki.sh:98: PostUrlHost="https://files.uwabaki.party/upload.php" +./hosts/up_uwabaki.sh:108: if grep -Eqi 'File uploaded: ^${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #http (if changed) -./mad.sh:685: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #direct url https -./mad.sh:688: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:690: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:711: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #http (if changed) -./mad.sh:713: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #direct url https -./mad.sh:716: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:718: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:739: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #http (if changed) -./mad.sh:741: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #direct url https -./mad.sh:744: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:746: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:768: sed -i -e "s>^${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #http (if changed) -./mad.sh:770: sed -i -e "s>^direct=${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #direct url https -./mad.sh:773: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:775: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:799: sed -i -e "s>^${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #http (if changed) -./mad.sh:801: sed -i -e "s>^direct=${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #direct url https -./mad.sh:804: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:806: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:832: sed -i -e "s>^${url/https:/http:}.*>${url}|${newfilename}>g" "${InputFile}" #http (if changed) -./mad.sh:834: sed -i -e "s>^direct=${url/https:/http:}.*>direct=${url}|${newfilename}>g" "${InputFile}" #direct url https -./mad.sh:854: sed -i -e "s%^${url/https:/http:}.*%${newurl//[[:space:]]/$'\\\n'}%g" "${InputFile}" #http (if changed) -./mad.sh:875: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #http (if changed) -./mad.sh:877: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #direct url https -./mad.sh:880: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:882: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:898: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #http (if changed) -./mad.sh:900: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #direct url https -./mad.sh:903: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:905: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:924: sed -i -e "s>^${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #http (if changed) -./mad.sh:926: sed -i -e "s>^direct=${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #direct url https -./mad.sh:929: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:931: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:951: sed -i -e "s>^${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #http (if changed) -./mad.sh:953: sed -i -e "s>^direct=${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #direct url https -./mad.sh:956: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:958: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:976: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #http (if changed) -./mad.sh:978: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #direct url https -./mad.sh:981: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:983: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:1002: 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:1004: 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:1007: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:1009: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:1427: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1444: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1550: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1567: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1830: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1858: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1880: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:3196: if grep -Eqi '.onion' <<< "$download_url" && grep -Eqi 'https://' <<< "$download_url" ; then -./mad.sh:3711:arg2="$2" # auto, filelist, -./mad.sh:3808: echo -e " - http://oshi.at/abcd/origAABB.rar|My specified file.part1.rar" -./mad.sh:3810: echo -e " - direct=http://pomf2.lain.la/f/abcd00zz.7z" -./mad.sh:3812: echo -e ' - ie. direct=http://somehost.onion/abcD|filename.part1.rar' -./mad.sh:4031: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4032: remote_url=${remote_url/http:/https:} -./mad.sh:4053: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4054: remote_url=${remote_url/http:/https:} -./mad.sh:4420: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4421: remote_url=${remote_url/http:/https:} -./mad.sh:4479: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4480: remote_url=${remote_url/http:/https:} -./mad.sh:4505: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4506: remote_url=${remote_url/http:/https:} +./mad.sh:696: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #http (if changed) +./mad.sh:698: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #direct url https +./mad.sh:701: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:703: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:724: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #http (if changed) +./mad.sh:726: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #direct url https +./mad.sh:729: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:731: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:752: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #http (if changed) +./mad.sh:754: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #direct url https +./mad.sh:757: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:759: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:781: sed -i -e "s>^${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #http (if changed) +./mad.sh:783: sed -i -e "s>^direct=${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #direct url https +./mad.sh:786: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:788: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:812: sed -i -e "s>^${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #http (if changed) +./mad.sh:814: sed -i -e "s>^direct=${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #direct url https +./mad.sh:817: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:819: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:845: sed -i -e "s>^${url/https:/http:}.*>${url}|${newfilename}>g" "${InputFile}" #http (if changed) +./mad.sh:847: sed -i -e "s>^direct=${url/https:/http:}.*>direct=${url}|${newfilename}>g" "${InputFile}" #direct url https +./mad.sh:867: sed -i -e "s%^${url/https:/http:}.*%${newurl//[[:space:]]/$'\\\n'}%g" "${InputFile}" #http (if changed) +./mad.sh:888: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #http (if changed) +./mad.sh:890: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #direct url https +./mad.sh:893: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:895: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:911: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #http (if changed) +./mad.sh:913: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #direct url https +./mad.sh:916: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:918: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:937: sed -i -e "s>^${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #http (if changed) +./mad.sh:939: sed -i -e "s>^direct=${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #direct url https +./mad.sh:942: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:944: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:964: sed -i -e "s>^${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #http (if changed) +./mad.sh:966: sed -i -e "s>^direct=${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #direct url https +./mad.sh:969: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:971: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:989: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #http (if changed) +./mad.sh:991: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>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:1015: 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:1017: 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:1020: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:1022: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:1440: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) +./mad.sh:1457: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1563: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) +./mad.sh:1580: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1843: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1871: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1893: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:3209: if grep -Eqi '.onion' <<< "$download_url" && grep -Eqi 'https://' <<< "$download_url" ; then +./mad.sh:3724:arg2="$2" # auto, filelist, +./mad.sh:3821: echo -e " - http://oshi.at/abcd/origAABB.rar|My specified file.part1.rar" +./mad.sh:3823: echo -e " - direct=http://pomf2.lain.la/f/abcd00zz.7z" +./mad.sh:3825: echo -e ' - ie. direct=http://somehost.onion/abcD|filename.part1.rar' +./mad.sh:4044: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4045: remote_url=${remote_url/http:/https:} +./mad.sh:4066: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4067: remote_url=${remote_url/http:/https:} +./mad.sh:4433: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4434: remote_url=${remote_url/http:/https:} +./mad.sh:4492: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4493: remote_url=${remote_url/http:/https:} +./mad.sh:4518: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4519: 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 5b205b0..0681ff7 100755 --- a/.audit/mad-audit-tor_curl-details.log +++ b/.audit/mad-audit-tor_curl-details.log @@ -1,4 +1,4 @@ -DateTime: 25.01.15 +DateTime: 25.01.18 Files: ./hosts/1fichier.sh @@ -140,6 +140,7 @@ Files: ./hosts/up_uploadflix.sh ./hosts/up_uploadhive.sh ./hosts/up_uploadraja.sh +./hosts/up_uwabaki.sh ./hosts/up_yolobit.sh ./hosts/uwabaki.sh ./hosts/yolobit.sh @@ -1964,38 +1965,38 @@ _________________________________________________________________________ ./hosts/ranoz.sh:166: warnAndRetryUnknownError=true ./hosts/ranoz.sh:167: if [ "${finalAttempt}" == "true" ] ; then -- -./hosts/ranoz.sh:266: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:267: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ -./hosts/ranoz.sh:268: "$download_url" --continue-at - --output "$file_path" -./hosts/ranoz.sh:269: else -./hosts/ranoz.sh:270: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:269: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:270: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ ./hosts/ranoz.sh:271: "$download_url" --continue-at - --output "$file_path" -./hosts/ranoz.sh:272: fi -./hosts/ranoz.sh:273: else -./hosts/ranoz.sh:274: if [ "${RateMonitorEnabled}" == "true" ]; then -./hosts/ranoz.sh:275: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:276: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ -./hosts/ranoz.sh:277: -H "User-Agent: $RandomUA" \ -./hosts/ranoz.sh:278: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ -./hosts/ranoz.sh:279: -H "Accept-Language: en-US,en;q=0.5" \ -./hosts/ranoz.sh:280: -H "Accept-Encoding: gzip, deflate, br" \ -./hosts/ranoz.sh:281: -H "Connection: keep-alive" \ -./hosts/ranoz.sh:282: -H "Cookie: lng=eng" \ -./hosts/ranoz.sh:283: -H "Upgrade-Insecure-Requests: 1" \ -./hosts/ranoz.sh:284: -H "Sec-Fetch-Dest: document" \ -./hosts/ranoz.sh:285: -H "Sec-Fetch-Mode: navigate" \ +./hosts/ranoz.sh:272: else +./hosts/ranoz.sh:273: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:274: "$download_url" --continue-at - --output "$file_path" +./hosts/ranoz.sh:275: fi +./hosts/ranoz.sh:276: else +./hosts/ranoz.sh:277: if [ "${RateMonitorEnabled}" == "true" ]; then +./hosts/ranoz.sh:278: tor_curl_request --insecure -L -G --no-alpn \ +./hosts/ranoz.sh:279: --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval \ +./hosts/ranoz.sh:280: -H "User-Agent: $RandomUA" \ +./hosts/ranoz.sh:281: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ +./hosts/ranoz.sh:282: -H "Accept-Language: en-US,en;q=0.5" \ +./hosts/ranoz.sh:283: -H "Accept-Encoding: gzip, deflate, br" \ +./hosts/ranoz.sh:284: -H "Connection: keep-alive" \ +./hosts/ranoz.sh:285: -H "Cookie: lng=eng" \ +./hosts/ranoz.sh:286: -H "Upgrade-Insecure-Requests: 1" \ +./hosts/ranoz.sh:287: -H "Sec-Fetch-Dest: document" \ +./hosts/ranoz.sh:288: -H "Sec-Fetch-Mode: navigate" \ -- -./hosts/ranoz.sh:290: tor_curl_request --insecure -L -G --no-alpn \ -./hosts/ranoz.sh:291: -H "User-Agent: $RandomUA" \ -./hosts/ranoz.sh:292: -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \ -./hosts/ranoz.sh:293: -H "Accept-Language: en-US,en;q=0.5" \ -./hosts/ranoz.sh:294: -H "Accept-Encoding: gzip, deflate, br" \ -./hosts/ranoz.sh:295: -H "Connection: keep-alive" \ -./hosts/ranoz.sh:296: -H "Cookie: lng=eng" \ -./hosts/ranoz.sh:297: -H "Upgrade-Insecure-Requests: 1" \ -./hosts/ranoz.sh:298: -H "Sec-Fetch-Dest: document" \ -./hosts/ranoz.sh:299: -H "Sec-Fetch-Mode: navigate" \ -./hosts/ranoz.sh:300: -H "Sec-Fetch-Site: same-origin" \ +./hosts/ranoz.sh:293: tor_curl_request --insecure -L -G --no-alpn \ +./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:303: -H "Sec-Fetch-Site: same-origin" \ -- ./hosts/syspro.sh:88: response=$(tor_curl_request --insecure -L -s "$remote_url") ./hosts/syspro.sh:89: if [ "${DebugAllEnabled}" == "true" ] ; then @@ -2592,7 +2593,7 @@ _________________________________________________________________________ ./hosts/up_axfc.sh:190: if [ "${DebugAllEnabled}" == "true" ] ; then ./hosts/up_axfc.sh:191: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" ./hosts/up_axfc.sh:192: fi -./hosts/up_axfc.sh:193: response_ascii=$(echo "$response" | iconv -c -f UTF-8 -t ASCII//TRANSLIT) +./hosts/up_axfc.sh:193: response_ascii=$(mconvert_utf8_to_ascii "$response") ./hosts/up_axfc.sh:194: if [ "${DebugAllEnabled}" == "true" ] ; then -- ./hosts/up_bedrive.sh:102: response=$(tor_curl_upload --insecure -i \ @@ -3111,6 +3112,18 @@ _________________________________________________________________________ ./hosts/up_uploadraja.sh:111: -F "file_0=@${filepath}" \ ./hosts/up_uploadraja.sh:112: "${PostUrlHost}") -- +./hosts/up_uwabaki.sh:101: response=$(tor_curl_upload --insecure -i -L \ +./hosts/up_uwabaki.sh:102: -H "Content-Type: multipart/form-data" \ +./hosts/up_uwabaki.sh:103: -F "files[]=@${arrFiles[@]}" \ +./hosts/up_uwabaki.sh:104: "${PostUrlHost}") +./hosts/up_uwabaki.sh:105: if [ "${DebugAllEnabled}" == "true" ] ; then +./hosts/up_uwabaki.sh:106: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" +./hosts/up_uwabaki.sh:107: fi +./hosts/up_uwabaki.sh:108: if grep -Eqi 'File uploaded: .*$)' <<< "$response") +./hosts/up_uwabaki.sh:110: filesize=$(GetFileSize "$filepath" "false") +./hosts/up_uwabaki.sh:111: downloadLink="${url}" +-- ./hosts/up_yolobit.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_yolobit.sh:103: -H "Content-Type: multipart/form-data" \ ./hosts/up_yolobit.sh:104: -F "file[]=@${arrFiles[@]}" \ @@ -3173,235 +3186,235 @@ _________________________________________________________________________ ./hosts/youdbox.sh:287: containsHtml=true ./hosts/youdbox.sh:288: fi -- -./mad.sh:405:tor_curl_request() { -./mad.sh:406: if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:407: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:408: else -./mad.sh:409: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:410: fi -./mad.sh:411:} -./mad.sh:412:tor_curl_request_extended() { -./mad.sh:413: randomtimeout=$((30 + RANDOM % (60 - 30))) +./mad.sh:413:tor_curl_request() { ./mad.sh:414: if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:415: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:415: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" ./mad.sh:416: else -./mad.sh:417: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:417: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" ./mad.sh:418: fi ./mad.sh:419:} -./mad.sh:420:tor_curl_upload() { -./mad.sh:421: if [ "${UseTorCurlImpersonate}" == "true" ]; then -./mad.sh:422: if [ "${RateMonitorEnabled}" == "true" ]; then -./mad.sh:423: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" -./mad.sh:424: else -./mad.sh:425: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:426: fi -./mad.sh:427: else -./mad.sh:428: if [ "${RateMonitorEnabled}" == "true" ]; then -./mad.sh:429: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --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:430: else +./mad.sh:420:tor_curl_request_extended() { +./mad.sh:421: randomtimeout=$((30 + RANDOM % (60 - 30))) +./mad.sh:422: if [ "${UseTorCurlImpersonate}" == "true" ]; then +./mad.sh:423: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:424: else +./mad.sh:425: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:426: fi +./mad.sh:427:} +./mad.sh:428:tor_curl_upload() { +./mad.sh:429: if [ "${UseTorCurlImpersonate}" == "true" ]; then +./mad.sh:430: if [ "${RateMonitorEnabled}" == "true" ]; then +./mad.sh:431: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" +./mad.sh:432: else +./mad.sh:433: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:434: fi +./mad.sh:435: else +./mad.sh:436: if [ "${RateMonitorEnabled}" == "true" ]; then +./mad.sh:437: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --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:438: else -- -./mad.sh:1427: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1428: if [ "${DebugAllEnabled}" == "true" ] ; then -./mad.sh:1429: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1430: fi -./mad.sh:1431: if [ ! -z "$response" ]; then -./mad.sh:1432: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1433: latestBinaryDate=$(grep -oPi -m 1 '(?<== MaxDownloadRetries)) ; then -./mad.sh:1506: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" -./mad.sh:1507: exit 1 +./mad.sh:1510: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1511: received_file_size=0 +./mad.sh:1512: if [ -f "$file_path" ] ; then +./mad.sh:1513: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:1514: fi +./mad.sh:1515: if ((received_file_size == file_size_bytes)) ; then +./mad.sh:1516: break +./mad.sh:1517: elif ((received_file_size < file_size_bytes)) ; then +./mad.sh:1518: if ((j >= MaxDownloadRetries)) ; then +./mad.sh:1519: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" +./mad.sh:1520: exit 1 -- -./mad.sh:1550: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1551: if [ "${DebugAllEnabled}" == "true" ] ; then -./mad.sh:1552: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1553: fi -./mad.sh:1554: if [ ! -z "$response" ]; then -./mad.sh:1555: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1556: latestBinaryDate=$(grep -oPi -m 1 '(?<== MaxDownloadRetries)) ; then -./mad.sh:1629: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" -./mad.sh:1630: exit 1 +./mad.sh:1633: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1634: received_file_size=0 +./mad.sh:1635: if [ -f "$file_path" ] ; then +./mad.sh:1636: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:1637: fi +./mad.sh:1638: if ((received_file_size == file_size_bytes)) ; then +./mad.sh:1639: break +./mad.sh:1640: elif ((received_file_size < file_size_bytes)) ; then +./mad.sh:1641: if ((j >= MaxDownloadRetries)) ; then +./mad.sh:1642: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" +./mad.sh:1643: exit 1 -- -./mad.sh:1825: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1826: echo -e "Files:" -./mad.sh:1827: echo -e "${BLUE}${fil}${NC}" -./mad.sh:1828: echo -e "" -./mad.sh:1829: echo -e "" -./mad.sh:1830: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1831: echo -e "_________________________________________________________________________" -./mad.sh:1832: echo -e "$maud_http" -./mad.sh:1833: echo -e "" -./mad.sh:1834: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1835: echo -e "_________________________________________________________________________" --- -./mad.sh:1838: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1839: echo -e "_________________________________________________________________________" -./mad.sh:1840: echo -e "$maud_torcurl" +./mad.sh:1838: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1839: echo -e "Files:" +./mad.sh:1840: echo -e "${BLUE}${fil}${NC}" ./mad.sh:1841: echo -e "" ./mad.sh:1842: echo -e "" -./mad.sh:1843: done -./mad.sh:1844: else -./mad.sh:1845: cd "$ScriptDir" -./mad.sh:1846: readarray -d $'' arrFiles < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) -./mad.sh:1847: cd "$WorkDir" -./mad.sh:1848: readarray -d $'' arrFiles2 < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) +./mad.sh:1843: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1844: echo -e "_________________________________________________________________________" +./mad.sh:1845: echo -e "$maud_http" +./mad.sh:1846: echo -e "" +./mad.sh:1847: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1848: echo -e "_________________________________________________________________________" -- -./mad.sh:1853: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1854: echo -e "Files:" -./mad.sh:1855: echo -e "${BLUE}${fil}${NC}" -./mad.sh:1856: echo -e "" -./mad.sh:1857: echo -e "" -./mad.sh:1858: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1859: echo -e "_________________________________________________________________________" -./mad.sh:1860: echo -e "$maud_http" -./mad.sh:1861: echo -e "" -./mad.sh:1862: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" -./mad.sh:1863: echo -e "_________________________________________________________________________" +./mad.sh:1851: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1852: echo -e "_________________________________________________________________________" +./mad.sh:1853: echo -e "$maud_torcurl" +./mad.sh:1854: echo -e "" +./mad.sh:1855: echo -e "" +./mad.sh:1856: done +./mad.sh:1857: else +./mad.sh:1858: cd "$ScriptDir" +./mad.sh:1859: readarray -d $'' arrFiles < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) +./mad.sh:1860: cd "$WorkDir" +./mad.sh:1861: readarray -d $'' arrFiles2 < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) -- -./mad.sh:1866: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1867: echo -e "_________________________________________________________________________" -./mad.sh:1868: echo -e "$maud_torcurl" +./mad.sh:1866: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1867: echo -e "Files:" +./mad.sh:1868: echo -e "${BLUE}${fil}${NC}" ./mad.sh:1869: echo -e "" -./mad.sh:1870: done -./mad.sh:1871: for fil in "${arrFiles2[@]}"; -./mad.sh:1872: do -./mad.sh:1873: maud_http=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei '(http|https):') -./mad.sh:1874: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1875: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1876: echo -e "Files:" -./mad.sh:1877: echo -e "${BLUE}${fil}${NC}" -./mad.sh:1878: echo -e "" -./mad.sh:1879: echo -e "" -./mad.sh:1880: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1881: echo -e "_________________________________________________________________________" -./mad.sh:1882: echo -e "$maud_http" -./mad.sh:1883: echo -e "" -./mad.sh:1884: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1885: echo -e "_________________________________________________________________________" +./mad.sh:1870: echo -e "" +./mad.sh:1871: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1872: echo -e "_________________________________________________________________________" +./mad.sh:1873: echo -e "$maud_http" +./mad.sh:1874: echo -e "" +./mad.sh:1875: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" +./mad.sh:1876: echo -e "_________________________________________________________________________" -- -./mad.sh:1888: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1889: echo -e "_________________________________________________________________________" -./mad.sh:1890: echo -e "$maud_torcurl" +./mad.sh:1879: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1880: echo -e "_________________________________________________________________________" +./mad.sh:1881: echo -e "$maud_torcurl" +./mad.sh:1882: echo -e "" +./mad.sh:1883: done +./mad.sh:1884: for fil in "${arrFiles2[@]}"; +./mad.sh:1885: do +./mad.sh:1886: maud_http=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei '(http|https):') +./mad.sh:1887: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1888: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1889: echo -e "Files:" +./mad.sh:1890: echo -e "${BLUE}${fil}${NC}" ./mad.sh:1891: echo -e "" -./mad.sh:1892: done -./mad.sh:1893: fi -./mad.sh:1894:} -./mad.sh:1895:madStatus() { -./mad.sh:1896: local InputFile="$1" -./mad.sh:1897: if [ "$arg1" == "status" ] ; then -./mad.sh:1898: clear +./mad.sh:1892: echo -e "" +./mad.sh:1893: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1894: echo -e "_________________________________________________________________________" +./mad.sh:1895: echo -e "$maud_http" +./mad.sh:1896: echo -e "" +./mad.sh:1897: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1898: echo -e "_________________________________________________________________________" -- -./mad.sh:3213: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ -./mad.sh:3214: -H "Connection: keep-alive" \ -./mad.sh:3215: -w 'EffectiveUrl=%{url_effective}' \ -./mad.sh:3216: "$download_url") -./mad.sh:3217: else -./mad.sh:3218: printf "| Retrieving Head: attempt #$j" -./mad.sh:3219: rm -f "${WorkDir}/.temp/directhead" -./mad.sh:3220: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | -./mad.sh:3221: tee "${WorkDir}/.temp/directhead" & -./mad.sh:3222: sleep 6 -./mad.sh:3223: [ -s "${WorkDir}/.temp/directhead" ] -./mad.sh:3224: kill $! 2>/dev/null -./mad.sh:3225: ) -./mad.sh:3226: if [ ! -f "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" ]; then -./mad.sh:3227: touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" -./mad.sh:3228: fi -./mad.sh:3229: rm -f "${WorkDir}/.temp/directhead" -./mad.sh:3230: fi +./mad.sh:1901: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1902: echo -e "_________________________________________________________________________" +./mad.sh:1903: echo -e "$maud_torcurl" +./mad.sh:1904: echo -e "" +./mad.sh:1905: done +./mad.sh:1906: fi +./mad.sh:1907:} +./mad.sh:1908:madStatus() { +./mad.sh:1909: local InputFile="$1" +./mad.sh:1910: if [ "$arg1" == "status" ] ; then +./mad.sh:1911: clear -- -./mad.sh:3350: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" -./mad.sh:3351: rc=$? -./mad.sh:3352: if [ $rc -ne 0 ] ; then -./mad.sh:3353: printf "${RED}Download Failed (bad exit status).${NC}" -./mad.sh:3354: if [ -f ${file_path} ]; then -./mad.sh:3355: printf "${YELLOW} Partial removed...${NC}" -./mad.sh:3356: printf "\n\n" -./mad.sh:3357: rm -f "${file_path}" -./mad.sh:3358: else -./mad.sh:3359: printf "\n\n" -./mad.sh:3360: fi +./mad.sh:3226: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ +./mad.sh:3227: -H "Connection: keep-alive" \ +./mad.sh:3228: -w 'EffectiveUrl=%{url_effective}' \ +./mad.sh:3229: "$download_url") +./mad.sh:3230: else +./mad.sh:3231: printf "| Retrieving Head: attempt #$j" +./mad.sh:3232: rm -f "${WorkDir}/.temp/directhead" +./mad.sh:3233: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | +./mad.sh:3234: tee "${WorkDir}/.temp/directhead" & +./mad.sh:3235: sleep 6 +./mad.sh:3236: [ -s "${WorkDir}/.temp/directhead" ] +./mad.sh:3237: kill $! 2>/dev/null +./mad.sh:3238: ) +./mad.sh:3239: if [ ! -f "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" ]; then +./mad.sh:3240: touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" +./mad.sh:3241: fi +./mad.sh:3242: rm -f "${WorkDir}/.temp/directhead" +./mad.sh:3243: fi -- -./mad.sh:3394: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./mad.sh:3395: else -./mad.sh:3396: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" -./mad.sh:3397: fi -./mad.sh:3398: received_file_size=0 -./mad.sh:3399: if [ -f "$file_path" ] ; then -./mad.sh:3400: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') -./mad.sh:3401: fi -./mad.sh:3402: if CheckNoHtml "$remote_url" "$filename" "$file_path" ; then -./mad.sh:3403: containsHtml=false -./mad.sh:3404: else -./mad.sh:3405: containsHtml=true -./mad.sh:3406: fi +./mad.sh:3363: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" +./mad.sh:3364: rc=$? +./mad.sh:3365: if [ $rc -ne 0 ] ; then +./mad.sh:3366: printf "${RED}Download Failed (bad exit status).${NC}" +./mad.sh:3367: if [ -f ${file_path} ]; then +./mad.sh:3368: printf "${YELLOW} Partial removed...${NC}" +./mad.sh:3369: printf "\n\n" +./mad.sh:3370: rm -f "${file_path}" +./mad.sh:3371: else +./mad.sh:3372: printf "\n\n" +./mad.sh:3373: fi -- -./mad.sh:3594: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3595: -H "Content-Type: multipart/form-data" \ -./mad.sh:3596: -F "key=" \ -./mad.sh:3597: -F "time=$jira_timeval" \ -./mad.sh:3598: -F "file=@${filepath}" \ -./mad.sh:3599: "${jira_PostUrlHost}") -./mad.sh:3600: else -./mad.sh:3601: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3602: -H "Content-Type: multipart/form-data" \ -./mad.sh:3603: -F "key=" \ -./mad.sh:3604: -F "time=$jira_timeval" \ -./mad.sh:3605: -F "files[]=@${arrFiles[@]}" \ -./mad.sh:3606: "${jira_PostUrlHost}") -./mad.sh:3607: fi -./mad.sh:3608: if [ "${DebugAllEnabled}" == "true" ] ; then -./mad.sh:3609: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${jira_PostUrlHost}"$'\n'"${response}" -./mad.sh:3610: fi -./mad.sh:3611: if grep -Eqi ' 200 ' <<< "${response}" ; then +./mad.sh:3407: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./mad.sh:3408: else +./mad.sh:3409: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" +./mad.sh:3410: fi +./mad.sh:3411: received_file_size=0 +./mad.sh:3412: if [ -f "$file_path" ] ; then +./mad.sh:3413: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:3414: fi +./mad.sh:3415: if CheckNoHtml "$remote_url" "$filename" "$file_path" ; then +./mad.sh:3416: containsHtml=false +./mad.sh:3417: else +./mad.sh:3418: containsHtml=true +./mad.sh:3419: fi +-- +./mad.sh:3607: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3608: -H "Content-Type: multipart/form-data" \ +./mad.sh:3609: -F "key=" \ +./mad.sh:3610: -F "time=$jira_timeval" \ +./mad.sh:3611: -F "file=@${filepath}" \ +./mad.sh:3612: "${jira_PostUrlHost}") +./mad.sh:3613: else +./mad.sh:3614: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3615: -H "Content-Type: multipart/form-data" \ +./mad.sh:3616: -F "key=" \ +./mad.sh:3617: -F "time=$jira_timeval" \ +./mad.sh:3618: -F "files[]=@${arrFiles[@]}" \ +./mad.sh:3619: "${jira_PostUrlHost}") +./mad.sh:3620: fi +./mad.sh:3621: if [ "${DebugAllEnabled}" == "true" ] ; then +./mad.sh:3622: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${jira_PostUrlHost}"$'\n'"${response}" +./mad.sh:3623: fi +./mad.sh:3624: if grep -Eqi ' 200 ' <<< "${response}" ; then diff --git a/documentation/README-upload_hosts.txt b/documentation/README-upload_hosts.txt index 07687cf..2aad131 100755 --- a/documentation/README-upload_hosts.txt +++ b/documentation/README-upload_hosts.txt @@ -24,6 +24,7 @@ Max Size . HostCode . Nickname . Notes 2GB fs firestorage.jp 90d+ inactive expiry 2GB sysp syspro.com.br ?? expiry * 2GB axfc axfc.net 90d+ inactive expiry + 1GB uwab uwabaki.party no expiry, no DMCA, no logs - 1GB kraken krakenfiles.com 90d inactive expiry 1GB ansh anonsharing.com 6mo expiry 512MB anon anonfile.de ?? expiry @@ -38,7 +39,7 @@ Max Size . HostCode . Nickname . Notes 100MB fb fileblade.com ?? expiry 100MB ubay uploadbay.net ?? expiry 100MB upee upload.ee 50d expiry - 100MB bow bowfile.com 20d inactive expiry +- 100MB bow bowfile.com 20d inactive expiry - 100MB yolo yolobit ?? expiry - 100MB nofile nofile.org ?? expiry - 100MB so share-online.vg ?? expiry @@ -95,6 +96,7 @@ dosya dosyaupload -- Uploads failing / downloads Captcha / js required cyx cyssoux.fr -- Error 6 -- server temp file location issue frso freesocial.co -- No response squid filesquid.net -- No response +bow bowfiles -- js required NOTES (*): ---------------- @@ -104,6 +106,6 @@ axfc axfc.net (MAD download not implemented) # Jirafeau hosts: -(recommended upload 100MB splits as many host only support that) +(recommended upload 100MB splits as many host only support that, and the retention algo favors smaller files) diff --git a/hosts/fileblade.sh b/hosts/fileblade.sh index e9ebd7f..1ead143 100644 --- a/hosts/fileblade.sh +++ b/hosts/fileblade.sh @@ -1,6 +1,6 @@ -#! Name: isupload.sh +#! Name: fileblade.sh #! Author: kittykat -#! Version: 2025.01.14 +#! Version: 2025.01.17 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -105,9 +105,9 @@ fb_FetchFileInfo() { continue fi fi - if grep -Eqi "Sorry, you are banned|Sorry, you have been blocked" <<< "$response"; then + if grep -Eqi "Sorry, you are banned|Sorry, you have been blocked" <<< "$response"; then + rm -f "${fb_cookie_jar}"; if [ $i == $maxfetchretries ] ; then - rm -f "${fb_cookie_jar}"; printf "\\n" echo -e "${RED}| Failed to extract download link [blocked ip]${NC}" warnAndRetryUnknownError=true diff --git a/hosts/ranoz.sh b/hosts/ranoz.sh index 294a9ad..c30511a 100644 --- a/hosts/ranoz.sh +++ b/hosts/ranoz.sh @@ -1,6 +1,6 @@ #! Name: ranoz.sh #! Author: kittykat -#! Version: 2025.01.11 +#! Version: 2025.01.18 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -247,12 +247,15 @@ rz_FetchFileInfo() { #! ----------- (3) Fetch File / Download File Function --------------- # #! rz_GetFile() { - echo -e "${GREEN}# Downloading…" + echo -e "${GREEN}# Downloading… ${BLUE}(no resume)${NC}" echo -e "${YELLOW}| File path:${NC}\t./.inflight/${filename}\n" fileCnt=$1 retryCnt=$2 finalAttempt=$3 flockDownload="${WorkDir}/.flocks/${filename//[^a-zA-Z0-9\.\_\-]/}.flock" + if [ -f "$file_path" ]; then + rm -f "$file_path" + fi for ((j=1; j<=$MaxDownloadRetries; j++)); do pd_presize=0 if [ -f "$file_path" ] ; then diff --git a/hosts/up_axfc.sh b/hosts/up_axfc.sh old mode 100755 new mode 100644 index 0419285..6752884 --- a/hosts/up_axfc.sh +++ b/hosts/up_axfc.sh @@ -1,6 +1,6 @@ #! Name: up_axfc.sh #! Author: kittykat -#! Version: 2025.01.02 +#! Version: 2025.01.16 #! Desc: Add support for uploading files to a new host #! Info: Files are accessible at https://www.axfc.net/ #! MaxSize: 2GB @@ -190,7 +190,7 @@ axfc_PostFile() { if [ "${DebugAllEnabled}" == "true" ] ; then debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" fi - response_ascii=$(echo "$response" | iconv -c -f UTF-8 -t ASCII//TRANSLIT) + response_ascii=$(mconvert_utf8_to_ascii "$response") if [ "${DebugAllEnabled}" == "true" ] ; then debugHtml "${filepath##*/}" "${_hostCode}_upload_ascii" "post_url: ${PostUrlHost}"$'\n'"${response_ascii}" fi diff --git a/hosts/up_nantes.sh b/hosts/up_nantes.sh index e05a930..1dd4903 100644 --- a/hosts/up_nantes.sh +++ b/hosts/up_nantes.sh @@ -1,6 +1,6 @@ #! Name: up_nantes.sh #! Author: kittykat -#! Version: 2024.10.23 +#! Version: 2025.01.18 #! Desc: Add support for uploading files to fichiers.nantes.cloud #! Info: Files are accessible at https://address/f.php?h=&p=1 #! MaxSize: 10GB @@ -36,7 +36,7 @@ nant_UploadFile() { jira_MaxUploadSizeInBytes=10737418240 jira_PostUrlHost='https://fichiers.nantes.cloud/script.php' jira_filetype=1 - jira_timeval="month" + jira_timeval="week" jira_downloadLinkPrefix='https://fichiers.nantes.cloud/f.php?h=' jira_UploadFile ${1} ${2} ${3} ${4} } diff --git a/hosts/up_uwabaki.sh b/hosts/up_uwabaki.sh new file mode 100644 index 0000000..3931fb0 --- /dev/null +++ b/hosts/up_uwabaki.sh @@ -0,0 +1,141 @@ +#! Name: up_uwabaki.sh +#! Author: kittykat +#! Version: 2025.01.17 +#! Desc: Add support for uploading files to a new host +#! Info: Files are accessible at https://address.com/ +#! MaxSize: 1GB +#! Expire: none +#! Note: No expiry, no logs, DMCA ignored (hosted in the EU). Files are always encrypted server-side. Up to 5 files, max 1 GB each. +#! 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='uwab' +HostNick='uwabaki' +HostFuncPrefix='uwab' +#! +#! !! 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() +uwab_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=1073741824 + 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 uwab_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 --------------- # +#! +uwab_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]/}" + PostUrlHost="https://files.uwabaki.party/upload.php" + arrFiles=("$filepath") + trap "rm -f ${UploadTicket}; echo ""; tput cnorm; exit" 0 1 2 3 6 15 + response=$(tor_curl_upload --insecure -i -L \ + -H "Content-Type: multipart/form-data" \ + -F "files[]=@${arrFiles[@]}" \ + "${PostUrlHost}") + if [ "${DebugAllEnabled}" == "true" ] ; then + debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" + fi + if grep -Eqi 'File uploaded: .*$)' <<< "$response") + filesize=$(GetFileSize "$filepath" "false") + downloadLink="${url}" + echo -e "${GREEN}| Upload Success${NC}" + echo -e "| Size: ${BLUE}${filesize}${NC} bytes${NC}" + echo -e "| Link: ${YELLOW}${downloadLink}${NC}" + successUpload "$pline" "${filepath}" "${_hostCode}" "${filesize}" "${downloadLink}" "{$response}" + return 0 + elif grep -Eqi 'File uploaded: .*$)' <<< "$response") + filesize=$(GetFileSize "$filepath" "false") + downloadLink="https://files.uwabaki.party${url}" + 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/uwabaki.sh b/hosts/uwabaki.sh index 90f0a9d..ec8e4ae 100644 --- a/hosts/uwabaki.sh +++ b/hosts/uwabaki.sh @@ -1,6 +1,6 @@ #! Name: uwabaki.sh #! Author: kittykat -#! Version: 2025.01.14 +#! Version: 2025.01.17 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -16,13 +16,24 @@ HostCode='uwab' HostNick='uwabaki' HostFuncPrefix='direct' -HostUrls='uwabaki.party' +HostUrls='uwabaki.party, ufilesviwg67gcdyivvuanbx27c54bohd2e4mrichg5yrsaohom5dvid.onion' HostDomainRegex='^(http|https)://(.*\.)?files\.uwabaki\.party/' #! #! !! DO NOT UPDATE OR REMOVE !! #! This merges the Required HostAndDomainRegexes into mad.sh ListHostAndDomainRegexes=${ListHostAndDomainRegexes}'/'${HostCode}'/'${HostNick}'/'${HostFuncPrefix}'/'${HostUrls}':'${HostDomainRegex}'@' #! +#! Additional domains (oshi.onion) +HostCode='uwab' +HostNick='uwabaki' +HostFuncPrefix='direct' +HostUrls='uwabaki.party, ufilesviwg67gcdyivvuanbx27c54bohd2e4mrichg5yrsaohom5dvid.onion' +HostDomainRegex='^(http|https)://ufilesviwg67gcdyivvuanbx27c54bohd2e4mrichg5yrsaohom5dvid\.onion' +#! +#! !! 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 --------------- # #! diff --git a/mad.sh b/mad.sh index edbf510..8f7bec2 100644 --- a/mad.sh +++ b/mad.sh @@ -23,15 +23,23 @@ # * MisterFL - unzip after completion code and ideas # * stacktrough - click captcha workarounds and pixel websock code # * oldfart - code suggestions, helpful feedback, clipmon implementation, WorkDir, fixes +# * ysDyx - code suggestions, alternative imagemagick ocr implemention # # Thanks for testing, feedback, bug reports, suggestions, and encouragement: -# * zaire, Rexmaxx, TinyPanties56, klonkerz, Stifflove +# * zaire, Rexmaxx, TinyPanties56, klonkerz, Stifflove, samiam22, peachbutler # # * Everyone who provided feedback and helped test.. and those who wish to remain anonymous -ScriptVersion=2025.01.14 +ScriptVersion=2025.01.18 #================================================= # Recent Additions +# 2025.01.18 - [up_nantes] Update the post retention to "week" (host removed "month" option) +# 2025.01.18 - [mad] Updates to url_encode function and addition of conversion of utf8 to ascii function +# 2025.01.17 - [ranoz] Servers response to resume changed, set as no resume type for now +# 2025.01.17 - [uwabaki] Add download handling for uwabaki onion address urls +# 2025.01.16 - [ranoz] Fix filenames with unicode chars in the download url +# 2025.01.16 - [up_axfc] Move convert utf8 to ascii to mad function +# 2025.01.16 - [up_uwabaki] Add uwabaki.party as upload host (1GB, no expiration, no DMCA, no logs) # 2025.01.14 - [gagneux / up_gagneux] Add fichier.gagneux.info as upload / download host # 2025.01.14 - [uwabaki] Add uwabaki.party as download host # 2025.01.14 - [fileblade] Additional retries and handling for blocked Tor ips (until alternative) @@ -404,31 +412,31 @@ checkTor() { } tor_curl_request() { if [ "${UseTorCurlImpersonate}" == "true" ]; then - "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" + "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" else - curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" + curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" fi } tor_curl_request_extended() { randomtimeout=$((30 + RANDOM % (60 - 30))) if [ "${UseTorCurlImpersonate}" == "true" ]; then - "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout $randomtimeout --compressed --globoff "$@" + "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" else - curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout $randomtimeout --compressed --globoff "$@" + curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" fi } tor_curl_upload() { if [ "${UseTorCurlImpersonate}" == "true" ]; then if [ "${RateMonitorEnabled}" == "true" ]; then - "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" + "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" else - "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" + "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" fi else if [ "${RateMonitorEnabled}" == "true" ]; then - curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" + curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" else - curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" --connect-timeout ${ConnectTimeout} -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" + curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" fi fi } @@ -440,7 +448,7 @@ SetEnabledUploadHosts() { lstEnabledUploadHosts+="up_pixeldrain,up_quax,up_ranoz,up_skrepr,up_torup,up_turboonion,up_uploadee," lstEnabledUploadHosts+="up_uploadhive,up_uploadraja,up_herbolistique,up_uploadbay,up_ateasystems,up_syspro," lstEnabledUploadHosts+="up_dashfile,up_anonfile,up_fileland,up_fireget,up_euromussels,up_ramsgaard," - lstEnabledUploadHosts+="up_gagneux" + lstEnabledUploadHosts+="up_gagneux,up_uwabaki" 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," @@ -449,7 +457,7 @@ SetEnabledUploadHosts() { lstEnabledUploadHosts+="up_shareonline,up_skrepr,up_torup,up_turboonion,up_uploadee,up_uploadhive," lstEnabledUploadHosts+="up_uploadraja,up_yolobit,up_herbolistique,up_uploadbay,up_ateasystems,up_syspro," lstEnabledUploadHosts+="up_dashfile,up_anonfile,up_fileland,up_fireget,up_euromussels,up_ramsgaard," - lstEnabledUploadHosts+="up_gagneux" + lstEnabledUploadHosts+="up_gagneux,up_uwabaki" fi } SetEnabledDownloadHosts() { @@ -505,27 +513,32 @@ GetRandomFiledotUser() { fi done } +mconvert_utf8_to_ascii() { + local response_ascii=$(echo "$1" | iconv -c -f UTF-8 -t ASCII//TRANSLIT) + printf "%s" "$response_ascii" +} urlencode_literal_grouped_case () { - string=$1; format=; set -- - while - literal=${string%%[!-._~0-9A-Za-z]*} - case "$literal" in - ?*) - format=$format%s - set -- "$@" "$literal" - string=${string#$literal};; - esac - case "$string" in - "") false;; - esac - do - tail=${string#?} - head=${string%$tail} - format=$format%%%02x - set -- "$@" "'$head" - string=$tail - done - printf "$format\\n" "$@" + local inputCleaned=$(echo -en "$1") + string=$inputCleaned; format=; set -- + while + literal=${string%%[!-._~0-9A-Za-z]*} + case "$literal" in + ?*) + format=$format%s + set -- "$@" "$literal" + string=${string#$literal};; + esac + case "$string" in + "") false;; + esac + do + tail=${string#?} + head=${string%$tail} + format=$format%%%02x + set -- "$@" "'$head" + string=$tail + done + printf "$format\\n" "$@" } urlencode_literal_grouped_case_urlendingonly () { echo "${1%/*}""/""$(urlencode_literal_grouped_case ${1##*/})" diff --git a/uploads.txt b/uploads.txt index bce0181..625521e 100755 --- a/uploads.txt +++ b/uploads.txt @@ -1,19 +1,17 @@ # upload.txt -- Files & Hostcodes # ------------------------------- ------------------------------ ------------------------------ # Max Size . HostCode . Nickname ## Max Size . HostCode . Nickname ## Max Size . HostCode . Nickname -# 300GB 1f 1fichier 100MB bow bowfile 250MB upev uploadev.org -# 100MB dbree dbree 2GB dosya dosyaupload 300GB fh filehaus +# 300GB 1f 1fichier 250MB upev uploadev.org 20GB pd pixeldrain +# 5GB oshi oshi 300GB fh filehaus 4GB offcat offshore.cat # 10GB gofile gofile.io 20GB rz ranoz.gg 5GB uhive uploadhive -# 100MB nippy nippy* 100MB nofile nofile 5GB oshi oshi -# 100MB so shareonline 100MB yolo yolobit -# 20GB pd pixeldrain 195MB dup dataupload.net 2GB axfc axfc.net -# 10GB raja uploadraja.com 240MB ko kouploader.jp 4GB tmpsh temp.sh +# 195MB dup dataupload.net 2GB axfc axfc.net 240MB ko kouploader.jp +# 10GB raja uploadraja.com 4GB tmpsh temp.sh 256MB qx qu.ax # 10GB tmpme tempfile.me 300MB trbo turbo.onion 100MB inno innocent.onion -# 1GB ansh anonsharing.com 1GB torp TorUp.onion 4GB offcat offshore.cat -# 100MB upee upload.ee 5GB fd fileditch.com 256MB qx qu.ax -# 40GB isup isupload.com 100MB fb fileblade.com 20GB atea ateasystems.com -# 100MB ubay uploadbay.net 2GB sysp syspro.com.br 400MB dash dashfile.net -# 512MB anon anonfile.de 100MB fget fireget.com 500MB fland fileland.io +# 1GB ansh anonsharing.com 1GB torp TorUp.onion 20GB atea ateasystems.com +# 100MB upee upload.ee 5GB fd fileditch.com 400MB dash dashfile.net +# 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 # 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 @@ -22,9 +20,6 @@ # ?? skpr skrepr.com 5GB edd eddowding.com 2GB dict dictvm.org # 10GB cyx cyssoux.fr 5GB frso freesocial.co 512MB herb herbolistique.com # 512MB gagn gagneux.info -# (Require js -- do not use) -# 4GB daily dailyuploads 1GB kraken krakenfiles 2GB hex hexload -# 4GB bd bedrive.ru 5GB uflix uploadflix # ------------------------------- ------------------------------ ------------------------------ # Example Uploads Todo: