12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #! /usr/bin/env python
-
- from __future__ import print_function
- import sys
- import os
- import time
- import glob
- import torrentfile
- import torrentmanager
- import config
-
- def warning(*objs):
- print(time.strftime("%d/%m/%Y %H:%M:%S"), "WARNING:", *objs, file=sys.stderr)
-
- def debug(*objs):
- print(time.strftime("%d/%m/%Y %H:%M:%S"), *objs)
-
- if len(sys.argv) >= 2:
- config = config.Config(sys.argv[1])
- else:
- config = config.Config()
-
- maxRatio = config.getMaxRatio()
- maxRate = config.getMaxRate()
- torrentsPath = config.getTorrentsPath()
-
- print("Max ratio:", maxRatio)
- print("Max rate:", maxRate, "kb/s")
- print("Torrents path:", torrentsPath)
-
- manager = torrentmanager.TorrentManager(maxRatio, maxRate)
- run = True
- while run:
- for file in glob.glob(torrentsPath + "/*.torrent"):
- torrent = torrentfile.TorrentFile()
- try:
- torrent.readFile(file)
- except:
- os.remove(file)
- warning("could not load", file)
-
- try:
- if not any(x.getName() == torrent.getName()
- for x in manager.getTorrents()):
- torrent.getTracker().start()
- debug("started", torrent.getName())
- manager.appendTorrent(torrent)
- except:
- warning("could not start", torrent.getName())
-
- count = len(manager.getTorrents())
-
- if count == 0:
- warning("could not find/load/start any torrent. Waiting 5 minutes")
- time.sleep(300)
- continue
-
- t = manager.getNextTime()
- torrent = t['torrent']
- secs = t['time']
- if secs > 0:
- debug(torrent.getName() + ": Next update in " + str(secs) + " seconds")
- time.sleep(secs)
- debug("Updating", torrent.getName(),
- "ratio =", (torrent.getTracker().getUploaded() / float(torrent.getSize())))
- try:
- manager.updateTorrent()
- except:
- warning("could not update")
|