astroport-iptubes/crawl.py

64 lines
1.7 KiB
Python
Executable File

################################################################################
# Author: Poka (poka@p2p.legal)
# Version: 0.0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
# Git: https://git.p2p.legal/axiom-team/astroport
################################################################################
import requests
import json
import sys
import subprocess
import login
import time
# Load scraper
from yggcrawl import YggTorrentScraper
scraper = YggTorrentScraper(requests.session())
from yggtorrentscraper import set_yggtorrent_tld
set_yggtorrent_tld("se")
name = ' '.join(sys.argv[1:])
# Give paramaters to scraper
parameters = {
"name": name,
"category": "films_&_videos",
"subcategory": "film",
"sort": "seed",
"order": "desc"
}
# Execute scrapping
research = scraper.search(parameters)
# Check if not found
if research == []:
print("Aucun torrent trouvé ayant pour nom \"" + name + "\"")
sys.exit()
# Options
#most_completed = scraper.most_completed()
#print(json.dumps(research, sort_keys=True, indent=4))
#print(json.dumps(most_completed, sort_keys=True, indent=4))
# Download torrent file
if(scraper.login(login.user, login.passwd)):
print("Login success")
first_torrent = research[0]
scraper.download_from_torrent_url(first_torrent)
else:
print("Login failed")
# Remove tracker
print("Start to remove tracker ...")
time.sleep(1)
ID = subprocess.Popen(["./trans-ctl.sh -l | grep -vE 'Sum:|ID Done' | tail -n1 | awk '{ print $1 }'"], shell=True, executable="/bin/bash", stdout=subprocess.PIPE).communicate()[0].strip().decode('ascii')
print("Wait 10 seconds to get peers before remove tracker...")
time.sleep(10)
subprocess.call(["./trans-ctl.sh", "rmtracker", ID])
print("Done")