From 8a2d93404832b778480fb7427d11295fffbe2bfb Mon Sep 17 00:00:00 2001 From: Dessalines Date: Mon, 26 Nov 2018 10:08:18 -0700 Subject: [PATCH] Fixing scanning. --- scripts/scan_torrents.sh | 93 ++++++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/scripts/scan_torrents.sh b/scripts/scan_torrents.sh index 3e04a83..06f26af 100755 --- a/scripts/scan_torrents.sh +++ b/scripts/scan_torrents.sh @@ -4,6 +4,7 @@ # Help line cd .. torrents_csv="`pwd`/torrents.csv" +scanned_out="`pwd`/infohashes_scanned.txt" help="Run ./scan_torrents.sh [TORRENTS_DIR] \nor goto https://gitlab.com/dessalines/torrents.csv for more help" if [ "$1" == "-h" ] || [ -z "$1" ]; then @@ -27,60 +28,70 @@ fi pushd $torrents_dir for torrent_file in *.torrent; do - # Scrape it - health_text=$(torrent-tracker-health --torrent $torrent_file --timeout 1000 --addTrackers={udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://exodus.desync.com:6969/announce,udp://explodie.org:6969/announce}) + file_infohash=$(basename $torrent_file | cut -d'.' -f 1) - # echo $health_text + if rg -Nq $file_infohash $scanned_out; then + echo "$file_infohash already scanned" + else - infohash=$(jq -r '.hash' <<< $health_text) - name=$(jq -r '.name' <<< $health_text) - size_bytes=$(jq -r '.length' <<< $health_text) - seeders=$(jq -r '.seeds' <<< $health_text) - leechers=$(jq -r '.peers' <<< $health_text) - completed=$(jq -r '.completed' <<< $health_text) - date_string=$(jq -r '.created' <<< $health_text) - created_date=$(date -d "${date_string}" +"%s") - scraped_date=$(date +%s) + # Scrape it + health_text=$(torrent-tracker-health --torrent $torrent_file --timeout 1000 --addTrackers={udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://exodus.desync.com:6969/announce,udp://explodie.org:6969/announce}) - # Construct add line - add_line="$infohash;$name;$size_bytes;$created_date;$seeders;$leechers;$completed;$scraped_date" - # echo -e $add_line - - if (( $seeders > 0 )); then + echo -e "$health_text" - found_line=$(rg -n $infohash $torrents_csv) - found_seeders=$(echo -e $found_line | cut -d';' -f 5) + infohash=$(jq -r '.hash' <<< $health_text) + name=$(jq -r '.name' <<< $health_text) + size_bytes=$(jq -r '.length' <<< $health_text) + seeders=$(jq -r '.seeds' <<< $health_text) + leechers=$(jq -r '.peers' <<< $health_text) + completed=$(jq -r '.completed' <<< $health_text) + date_string=$(jq -r '.created' <<< $health_text) + created_date=$(date -d "${date_string}" +"%s") + scraped_date=$(date +%s) - # Only re-add if the infohash doesn't exist, or - if [ ! -z "$found_line" ]; then + # Construct add line + add_line="$infohash;$name;$size_bytes;$created_date;$seeders;$leechers;$completed;$scraped_date" + # echo -e $add_line - # Seeder counts are different - if [ "$found_seeders" != "$seeders" ]; then + if (( $seeders > 0 )); then - # Delete the original infohash line - grep -v "$infohash" $torrents_csv > torfile.tmp.2; mv torfile.tmp.2 $torrents_csv - + found_line=$(rg -n $infohash $torrents_csv) + found_seeders=$(echo -e $found_line | cut -d';' -f 5) + + # Only re-add if the infohash doesn't exist, or + if [ ! -z "$found_line" ]; then + + # Seeder counts are different + if [ "$found_seeders" != "$seeders" ]; then + + # Delete the original infohash line + rg -N -v "$infohash" $torrents_csv > torfile.tmp.2; mv torfile.tmp.2 $torrents_csv + + # Append the add lines to the torrents.csv file + echo -e "\n$add_line" >> $torrents_csv + # truncate -s -1 $torrents_csv # Removing last newline + echo -e "Updating Seeders: $torrent_file | $name | $infohash | $seeders" + else + echo -e "Not adding $name, had identical seeders" + fi + else # Append the add lines to the torrents.csv file echo -e "\n$add_line" >> $torrents_csv # truncate -s -1 $torrents_csv # Removing last newline - echo -e "Updating Seeders: $torrent_file | $name | $infohash | $seeders" - else - echo -e "Not adding $name, had identical seeders" + echo -e "New Torrent: $torrent_file | $name | $infohash | $seeders" fi - else - # Append the add lines to the torrents.csv file - echo -e "\n$add_line" >> $torrents_csv - # truncate -s -1 $torrents_csv # Removing last newline - echo -e "New Torrent: $torrent_file | $name | $infohash | $seeders" - fi - - else - # Deleting the line if it existed - if [ ! -z "$infohash" ]; then - echo -e "$name has no seeders, removing if existed." - grep -v "$infohash" $torrents_csv > torfile.tmp.2; mv torfile.tmp.2 $torrents_csv + else + # Deleting the line if it existed + if [ ! -z "$infohash" ]; then + # This removes lines that have no seeders + echo -e "$name has no seeders, removing if existed." + grep -v "$infohash" $torrents_csv > torfile.tmp.2; mv torfile.tmp.2 $torrents_csv + fi fi + + echo $infohash >> $scanned_out + fi done