Fixing add torrents script to not scrape if the info has is already there.

Adding a few torrents.
This commit is contained in:
Dessalines 2018-10-12 09:42:19 -07:00
parent fd0a1079c4
commit 34e7e947a3
2 changed files with 48 additions and 47 deletions

View File

@ -1,10 +1,10 @@
# Torrents.csv # Torrents.csv
`Torrents.csv` is a collaborative, vetted git repository of torrents, consisting of a single, searchable `torrents.csv` file. Its initially populated with a January 2017 backup of the pirate bay, and new torrents are periodically added from various torrents sites via a rust script. `Torrents.csv` is a collaborative, *vetted* repository of torrents, consisting of a single, searchable `torrents.csv` file. Its initially populated with a January 2017 backup of the pirate bay, and new torrents are periodically added from various torrents sites via a rust script.
`Torrents.csv` will only store torrents with at least one seeder to keep the file small, and will be periodically purged of non-seeded torrents, and sorted by seeders descending. `Torrents.csv` will only store torrents with at least one seeder to keep the file small, and will be periodically purged of non-seeded torrents, and sorted by seeders descending.
It also comes with a simple [Torrents.csv webserver](http://torrents-csv.ml) It also comes with a simple [Torrents.csv webserver](https://torrents-csv.ml)
![img](https://i.imgur.com/qVmSVMC.png) ![img](https://i.imgur.com/qVmSVMC.png)

View File

@ -44,7 +44,14 @@ for torrent_file in *.torrent; do
# Get fields from transmission # Get fields from transmission
show_text=$(transmission-show "$torrent_file") show_text=$(transmission-show "$torrent_file")
# echo "show text = $show_text"
infohash=$(grep -Po 'Hash: \K.*' <<< $show_text)
# If the infohash already exists, don't do anything
found_line=$(rg -n $infohash $torrents_csv | cut -d : -f 1)
if [ ! -z $found_line ]; then
echo "$infohash already exists"
else
name=$(grep -Po -m 1 'Name: \K.*' <<< $show_text) name=$(grep -Po -m 1 'Name: \K.*' <<< $show_text)
name=$(sed 's/;/\\;/g' <<< $name) # Escape the commas for .csv name=$(sed 's/;/\\;/g' <<< $name) # Escape the commas for .csv
@ -53,7 +60,7 @@ for torrent_file in *.torrent; do
size=$(grep -Po 'Total Size: \K.*' <<< $show_text) size=$(grep -Po 'Total Size: \K.*' <<< $show_text)
size_bytes=$(~/.local/bin/humanfriendly --parse-size="$size") # Convert to bytes size_bytes=$(~/.local/bin/humanfriendly --parse-size="$size") # Convert to bytes
infohash=$(grep -Po 'Hash: \K.*' <<< $show_text)
# Convert the created date # Convert the created date
date_string=$(grep -Po 'Created on: \K.*' <<< $show_text) date_string=$(grep -Po 'Created on: \K.*' <<< $show_text)
@ -81,23 +88,17 @@ for torrent_file in *.torrent; do
# Only add the line if there are seeds, and the infohash doesn't already exist # Only add the line if there are seeds, and the infohash doesn't already exist
if (( $seeders > 0 )); then if (( $seeders > 0 )); then
# If the infohash already exists, replace the line
found_line=$(rg -n $infohash $torrents_csv | cut -d : -f 1)
if [ ! -z $found_line ]; then
sed -i "$found_line c$add_line" $torrents_csv
echo -e "Found $name, updating peers"
else
# Append the add lines to the torrents.csv file # Append the add lines to the torrents.csv file
echo -e "\n$add_line" >> $torrents_csv echo -e "\n$add_line" >> $torrents_csv
truncate -s -1 $torrents_csv # Removing last newline truncate -s -1 $torrents_csv # Removing last newline
echo -e "Added $name" echo -e "Added $name"
fi
else else
echo -e "$name has no seeders." echo -e "$name has no seeders."
fi fi
fi
done done
popd popd
cd scripts
. prune.sh . prune.sh