Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import json
- import time
- import logging
- import datetime
- import dateutil.parser
- # server info
- username = 'admin'
- password = 'holahola85'
- host = 'localhost'
- port = '8080'
- # list of private trackers
- private_trackers = ['freshon.tv', 'what.cd', 'baconbits.org', 'torrentshack.me', 'passthepopcorn.me', 'landof.tv', 'broadcasthe.net', 'passtheheadphones.me', 'myanonamouse.net']
- # start session
- session = requests.session()
- # authenticate
- url = 'http://' + host + ':' + port + '/login'
- params = {'username': username, 'password': password}
- response = session.post(url, params)
- # get torrent list
- url = 'http://' + host + ':' + port + '/query/torrents'
- response = session.get(url)
- torrents = json.loads(response.content)
- for torrent in torrents:
- # torrent properties we're interested in
- hash = torrent['hash']
- name = torrent['name']
- label = torrent['category']
- state = torrent['state']
- finished = torrent['completion_on']
- def convertTime(finished):
- time = datetime.datetime.fromtimestamp(finished_on)
- return time
- #print name
- # get additional properties for each torrent
- url = 'http://' + host + ':' + port + '/query/propertiesTrackers/' + hash;
- response = session.get(url)
- torrent_trackers = json.loads(response.content)
- # let's figure out if the torrent is from any of the private trackers we want to continue seeding on
- from_private_tracker = False
- from_ptp = False
- for torrent_tracker in torrent_trackers:
- for private_tracker in private_trackers:
- if private_tracker in torrent_tracker['url']:
- from_private_tracker = True
- if 'passthepopcorn.me' or 'myanonamouse.net' in torrent_tracker['url']:
- from_ptp = True
- # at this point we know if the torrent is from one of our private trackers, so let's continue checking...
- # we don't mess with PTP torrents
- if from_ptp == False:
- # if the torrent is finished and seeding...
- if state == 'pausedUP' or state == 'queuedUP' or state == 'stalledUP' or state == 'uploading':
- # if the torrent is NOT from one of the private trackers, pause it
- if from_private_tracker == False:
- print 'Pausing ' + name
- url = 'http://' + host + ':' + port + '/command/pause'
- params = {'hash': hash}
- session.post(url, params)
- # set the time limits to delete the torrent, depending if it's from a private or public tracker
- if from_private_tracker == True:
- # seed for 6 days
- limit = 60 * 60 * 24 * 10
- else:
- # seed for 1 day
- limit = 60 * 60 * 24 * 1
- finished_on = convertTime(finished)
- current_dt = datetime.datetime.now()
- delta = (current_dt - finished_on).total_seconds()
- if delta > limit:
- # remove torrent
- print 'Deleting ' + name
- url = 'http://' + host + ':' + port + '/command/deletePerm'
- params = {'hashes': hash}
- session.post(url, params)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement