Advertisement
Guest User

Untitled

a guest
Mar 17th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.84 KB | None | 0 0
  1. import requests
  2. import json
  3. import time
  4. import logging
  5. import datetime
  6. import dateutil.parser
  7.  
  8. # server info
  9. username = 'admin'
  10. password = 'holahola85'
  11. host = 'localhost'
  12. port = '8080'
  13.  
  14. # list of private trackers
  15. private_trackers = ['freshon.tv', 'what.cd', 'baconbits.org', 'torrentshack.me', 'passthepopcorn.me', 'landof.tv', 'broadcasthe.net', 'passtheheadphones.me', 'myanonamouse.net']
  16.  
  17. # start session
  18. session = requests.session()
  19.  
  20. # authenticate
  21. url = 'http://' + host + ':' + port + '/login'
  22. params = {'username': username, 'password': password}
  23. response = session.post(url, params)
  24.  
  25. # get torrent list
  26. url = 'http://' + host + ':' + port + '/query/torrents'
  27. response = session.get(url)
  28.  
  29. torrents = json.loads(response.content)
  30.  
  31. for torrent in torrents:
  32.     # torrent properties we're interested in
  33.     hash = torrent['hash']
  34.     name = torrent['name']
  35.     label = torrent['category']
  36.     state = torrent['state']
  37.     finished = torrent['completion_on']
  38.  
  39.  
  40.     def convertTime(finished):
  41.         time = datetime.datetime.fromtimestamp(finished_on)
  42.         return time
  43.  
  44.  
  45.     #print name
  46.  
  47.     # get additional properties for each torrent
  48.  
  49.     url = 'http://' + host + ':' + port + '/query/propertiesTrackers/' + hash;
  50.     response = session.get(url)
  51.     torrent_trackers = json.loads(response.content)
  52.  
  53.     # let's figure out if the torrent is from any of the private trackers we want to continue seeding on
  54.     from_private_tracker = False
  55.     from_ptp = False
  56.  
  57.     for torrent_tracker in torrent_trackers:
  58.         for private_tracker in private_trackers:
  59.             if private_tracker in torrent_tracker['url']:
  60.                 from_private_tracker = True
  61.             if 'passthepopcorn.me' or 'myanonamouse.net' in torrent_tracker['url']:
  62.                 from_ptp = True
  63.  
  64.     # at this point we know if the torrent is from one of our private trackers, so let's continue checking...
  65.  
  66.     # we don't mess with PTP torrents
  67.     if from_ptp == False:
  68.         # if the torrent is finished and seeding...
  69.         if state == 'pausedUP' or state == 'queuedUP' or state == 'stalledUP' or state == 'uploading':
  70.  
  71.             # if the torrent is NOT from one of the private trackers, pause it
  72.             if from_private_tracker == False:
  73.                 print 'Pausing ' + name
  74.                 url = 'http://' + host + ':' + port + '/command/pause'
  75.                 params = {'hash': hash}
  76.                 session.post(url, params)
  77.  
  78.             # set the time limits to delete the torrent, depending if it's from a private or public tracker
  79.             if from_private_tracker == True:
  80.                 # seed for 6 days
  81.                 limit = 60 * 60 * 24 * 10
  82.             else:
  83.                 # seed for 1 day
  84.                 limit = 60 * 60 * 24 * 1
  85.  
  86.             finished_on = convertTime(finished)
  87.             current_dt = datetime.datetime.now()
  88.             delta = (current_dt - finished_on).total_seconds()
  89.  
  90.             if delta > limit:
  91.                 # remove torrent
  92.                 print 'Deleting ' + name
  93.                 url = 'http://' + host + ':' + port + '/command/deletePerm'
  94.                 params = {'hashes': hash}
  95.                 session.post(url, params)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement