root/anomosify.py

Revision 45a2550bcfabd4eaf678a63fa362ee6e82f610ef, 1.7 kB (checked in by John M. Schanck <john@…>, 5 weeks ago)

Moved images into Anomos.GUI, more setup.py fixing

  • Property mode set to 100755
Line 
1#!/usr/bin/env python
2
3## Mass Anomosification Script - Rich Jones, Anomos Liberty Enhancements
4## Public Domain, 2010
5## Patches, Flames: rich@anomos.info
6
7from Anomos.bencode import bdecode, bencode
8import os
9import sys
10import getopt
11
12def anomosify(data, announce="https://tracker.anomos.info:5555/announce"):
13
14        r = bdecode(data)
15        if 'announce-list' in r:
16            for a,l in enumerate(r['announce-list']):
17                if a == 0:
18                    r['announce-list'][a] = announce
19                else: 
20                    del r['announce-list'][a:]
21        r['announce'] = announce
22        r['anon'] = '1'
23
24        return bencode(r)
25       
26def process_file(fname, announce):
27    try:
28        f = file(fname, 'rb')
29        data = f.read()
30        anomosified = anomosify(data)
31
32        f = open(fname[:-7] + "atorrent", 'w')
33        f.write(anomosified)
34        f.close()
35    except IOError, e:
36        print e 
37        pass 
38    except Exception, e:
39        print e
40        pass
41
42def main(argv):
43
44    try:
45        opts, args = getopt.getopt(argv, "a:p:", ["announce=", "path="])
46    except getopt.GetoptError:
47        print "Hey, you need to supply --announce and --path"
48        sys.exit(2)
49    for opt, arg in opts:
50        if opt in ("-a", "--announce"):
51            announce = arg
52        else:
53            announce = "https://tracker.anomos.info:5555/announce"
54           
55        if opt in ("-p", "--path"):
56            path = arg
57        else:
58            path = '.'
59           
60    if not os.path.isfile(path):
61        for fname in os.listdir(path):
62            fp = os.path.join(path, fname)
63            print fp
64            process_file(fp, announce)
65    else:
66        process_file(path, announce)
67     
68if __name__ == "__main__":
69    main(sys.argv[1:])
Note: See TracBrowser for help on using the browser.