#!/bin/bash # API, API KEY, BOT TOKEN, CHATIDS #SCRAPPER_CONTROL_API_KEY= #TG_BOT_TOKEN= #CHAT_ID= SCRAP_URL="https://app-production.dhiraagu.com.mv/io/v1/info/subscribers" SCRAPPER_CONTROL_API_URL="https://scraper-control.awfulshit.xyz/api/dhiraagu-number" TELEGRAM_API_URL= # REPEAT AFTER FILE UPLOAD while true; do # LOOKING FOR FREE BITCHES GET_FREE_BATCH=$(curl --request GET --url "$SCRAPPER_CONTROL_API_URL"/next-batch --header "Authorization: Bearer $SCRAPPER_CONTROL_API_KEY" --header "Content-Type: application/json") BATCH_NUMBER=$(echo $GET_FREE_BATCH | jq -r '.batch_number') echo "First availible batch: $BATCH_NUMBER." # CLAIMING A FREE BITCH CLAIM_FREE_BATCH=$(curl --request POST --url "$SCRAPPER_CONTROL_API_URL"/next-batch/$BATCH_NUMBER --header "Authorization: Bearer $SCRAPPER_CONTROL_API_KEY" --header "Content-Type: application/json") BATCH_START=$(echo $GET_FREE_BATCH | jq -r '.batch_start') BATCH_END=$(echo $GET_FREE_BATCH | jq -r '.batch_end') # CANCEL THE BITCH ON STOP function CANCEL { echo "SCRIPT STOP REQUESTED, POSTING A CANCEL REQUEST TO SCRAPPER_CONTROL_API_URL" CANCEL_BATCH=$(curl --request POST --url "$SCRAPPER_CONTROL_API_URL"/next-batch/$BATCH_NUMBER/cancel --header "Authorization: Bearer $SCRAPPER_CONTROL_API_KEY" --header "Content-Type: application/json") echo "BATCH CANCELLED. STOPPING SCRIPT." rm $FILENAME exit } # SCRAP THE FREE BITCH START_NUM=$BATCH_START NUM=$START_NUM END_NUM=$((BATCH_END+1)) FILENAME=${BATCH_START}-${BATCH_END}.json # CHECK IF RANFE IS ASCENDING OR DESCENDING if [ "$START_NUM" -le "$END_NUM" ]; then step=1 else step=-1 fi # UPDATE THE LOOP DEPENDING ON ABOVE STEP while [ "$START_NUM" -ne "$END_NUM" ]; do echo "Scraping: $NUM" # LOG SCRAPPING NUMBER curl -si --socks5 127.0.0.1:9050 "$SCRAP_URL/$NUM/dir" > .cache DATA=$(tail -n1 .cache) # GET JSON DATA HTTP_STATUS=$(head -n1 .cache | awk '{print $2}') # GET HEADER trap CANCEL SIGINT if [ "$HTTP_STATUS" = "200" ]; then # IF DATA IS AVAILIBLE echo "$DATA" | tee -a "$FILENAME" printf "\n" | tee -a "$FILENAME" START_NUM=$(expr "$START_NUM" + "$step") printf -v NUM "%06d" "$START_NUM" else echo "";echo "COULD NOT GET DATA, GETTING NEW IP."; #systemctl restart tor #service tor restart #echo -e 'AUTHENTICATE ""\r\nSIGNAL NEWNYM\r\nQUIT' | nc -U /var/run/tor/control #printf 'AUTHENTICATE ""\r\nSIGNAL NEWNYM\r\nQUIT' | nc localhost 9051 printf 'AUTHENTICATE ""\r\nSIGNAL NEWNYM\r\nQUIT' | nc -w 1 localhost 9051 echo "" sleep 1 fi done # COMPLETED SCRAPPING BITCH BATCH_COMPLETE=$(curl --request POST --url "$SCRAPPER_CONTROL_API_URL"/next-batch/$BATCH_NUMBER/finish --header "Authorization: Bearer $SCRAPPER_CONTROL_API_KEY" --header "Content-Type: application/json") BATCH_NUMBER=$(echo $BATCH_COMPLETE | jq -r '.batch.batch_number') COMPLETED_BY=$(echo $BATCH_COMPLETE | jq -r '.batch.completed_by.name') CAPTION=$(echo -e "$FILENAME COMPLETED.\nBATCH $BATCH_NUMBER COMPLETED BY $COMPLETED_BY." | tr '[:lower:]' '[:upper:]') echo $CAPTION # UPLOAD SCRAPPED BITCH FILE TO TELEGRAM curl -s -F chat_id=$CHAT_ID -F caption="$CAPTION" -F document=@$FILENAME "https://api.telegram.org/bot$TG_BOT_TOKEN/sendDocument" rm -v $FILENAME done