You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

trackermanager.py 837B

12345678910111213141516171819202122232425262728293031
  1. #! /usr/bin/env python
  2. import copy
  3. import torrenttracker
  4. class TrackerManager:
  5. trackers = []
  6. next_trackers = []
  7. def __init__(self, trackers):
  8. self.trackers = trackers
  9. def start(self):
  10. for tracker in self.trackers:
  11. tracker.start()
  12. def resetNextTrackers(self):
  13. self.next_trackers = copy.copy(self.tracker)
  14. def getNextTracker(self):
  15. if not any(self.next_trackers):
  16. self.resetNextTrackers()
  17. minTracker = self.next_trackers[0]
  18. for tracker in self.next_trackers:
  19. if tracker.getInterval() < minTracker.getInterval():
  20. minTracker = tracker
  21. return minTracker
  22. def updateNextTracker(self):
  23. tracker = self.getNextTracker()
  24. tracker.interval(0, 0, 0)
  25. self.next_trackers.remove(tracker)