Browse Source

main

master
Robin Thoni 8 years ago
parent
commit
30f8a10a23
1 changed files with 35 additions and 14 deletions
  1. 35
    14
      fake-tracker.py

+ 35
- 14
fake-tracker.py View File

@@ -1,35 +1,56 @@
1 1
 #! /usr/bin/env python
2 2
 
3
+from __future__ import print_function
3 4
 import sys
4 5
 import time
6
+import glob
5 7
 import torrentfile
6
-import torrenttracker
7 8
 import torrentmanager
8 9
 import config
9 10
 
11
+def warning(*objs):
12
+        print("WARNING:", *objs, file=sys.stderr)
13
+
10 14
 if len(sys.argv) >= 2:
11 15
     config = config.Config(sys.argv[1])
12 16
 else:
13 17
     config = config.Config()
14 18
 
15 19
 maxRatio = config.getMaxRatio()
16
-maxRate = config.getMaxRatio()
17
-
18
-trackers = []
19
-for file in ('torrent.torrent', 'torrent2.torrent'):
20
-    torrent = torrentfile.TorrentFile()
21
-    torrent.readFile(file)
22
-    trackers.append(torrent)
20
+maxRate = config.getMaxRate()
21
+torrentsPath = config.getTorrentsPath()
23 22
 
24
-manager = torrentmanager.TorrentManager(trackers)
25
-manager.start()
23
+manager = torrentmanager.TorrentManager(maxRatio, maxRate)
26 24
 run = True
27 25
 while run:
26
+    for file in glob.glob(torrentsPath + "/*.torrent"):
27
+        try:
28
+            torrent = torrentfile.TorrentFile()
29
+            torrent.readFile(file)
30
+            if not any(x.getName() == torrent.getName()
31
+                    for x in manager.getTorrents()):
32
+                print("Found", torrent.getName())
33
+                torrent.getTracker().start()
34
+                manager.appendTorrent(torrent)
35
+        except:
36
+            warning("could not load or start", file)
37
+
38
+    count = len(manager.getTorrents())
39
+
40
+    if count == 0:
41
+        warning("could not find/load/start any torrent. Waiting 5 minutes")
42
+        time.sleep(300)
43
+        continue
44
+
28 45
     t = manager.getNextTime()
29 46
     torrent = t['torrent']
30 47
     secs = t['time']
31
-    print(torrent.getName() + ": Next update in " + str(secs) + " seconds")
32
-    time.sleep(secs)
33
-    print("Updating...")
34
-    manager.updateNextTracker()
48
+    if secs > 0:
49
+        print(torrent.getName() + ": Next update in " + str(secs) + " seconds")
50
+        time.sleep(secs)
51
+    print("Updating", torrent.getName())
52
+    try:
53
+        manager.updateTorrent(torrent)
54
+    except:
55
+        warning("could not update")
35 56
 

Loading…
Cancel
Save