def mktorrent(file_name, tracker): torrent_file = tempfile.mkstemp('.torrent') makemetafile.make_meta_file(file_name, "http://%s/announce" % tracker, { 'target': torrent_file[1], 'piece_size_pow2': 0 }) return torrent_file[1]
def complete(self): try: if self.separatetorrents: completedir(self.d, self.a, self.params, self.flag, self.valcallback, self.filecallback) else: make_meta_file(self.d, self.a, self.params, self.flag, self.valcallback, progress_percent=1) if not self.flag.isSet(): self.currentLabel.SetLabel('Done!') self.gauge.SetValue(1000) self.button.SetLabel('Close') self.frame.Refresh() except (OSError, IOError), e: self.currentLabel.SetLabel('Error!') self.button.SetLabel('Close') dlg = wxMessageDialog(self.frame, message='Error - ' + str(e), caption='Error', style=wxOK | wxICON_ERROR) dlg.ShowModal() dlg.Destroy()
def complete(self): try: make_meta_file(self.d, self.a, self.params, self.uiflag, self.call.build_setgauge, progress_percent = 1) if not self.uiflag.isSet(): self.call.build_done() except (OSError, IOError), e: self.failed(e)
def make_torrent(source_file, torrent_file, tracker): """Creates torrent meta file.""" make_meta_file(source_file, 'http://%s/announce' % tracker, { 'target': torrent_file, }) output.write('[green][swarm][/green] Source => [white]%s[/white]', source_file) output.write('[green][swarm][/green] Tracker => [white]http://%s/announce[/white]', tracker) output.write('[green][swarm][/green] Torrent => [white]%s[/white]', torrent_file)
def make_torrent(self, filename, dir, trackers): source = os.path.join(dir, filename) target = os.path.join(dir, filename + '.torrent') trackerUris = ['http://{0}:{1}/announce'.format(tracker, defaultSettings['trackerPort']) for tracker in trackers] params = [trackerUris[0], source, '--target', target] if len(trackerUris) > 1: params += ['--announce_list', ','.join(trackerUris[1:])] config, args = parseargs(params, defaults, 2, None) for file in args[1:]: make_meta_file(file, args[0], config)
def complete(self): try: make_meta_file(self.d, self.a, self.params, self.uiflag, self.call.build_setgauge, progress_percent=1) if not self.uiflag.isSet(): self.call.build_done() except (OSError, IOError), e: self.failed(e)
def make_torrent(source_file, torrent_file, tracker): """Creates torrent meta file.""" make_meta_file(source_file, 'http://%s/announce' % tracker, { 'target': torrent_file, }) output.write('[green][swarm][/green] Source => [white]%s[/white]', source_file) output.write( '[green][swarm][/green] Tracker => [white]http://%s/announce[/white]', tracker) output.write('[green][swarm][/green] Torrent => [white]%s[/white]', torrent_file)
def make_torrent(filename, dir, trackers): source = os.path.join(dir, filename) target = os.path.join(dir, filename + '.torrent') trackerUris = ['http://{0}:{1}/announce'.format(tracker, defaultSettings['trackerPort']) for tracker in trackers] params = [trackerUris[0], source, '--target', target] if len(trackerUris) > 1: params += ['--announce_list', ','.join(trackerUris[1:])] try: config, args = parseargs(params, defaults, 2, None) for file in args[1:]: make_meta_file(file, args[0], config) except ValueError, e: print 'error: ' + str(e) print 'run with no args for parameter explanations'
def main(argv): program, ext = os.path.splitext(os.path.basename(argv[0])) usage = "Usage: %s <trackerurl> <file> [file...] [params...]" % program if len(argv) < 3: print "{}\n\n{}{}".format(usage, formatDefinitions(defaults, 80), announcelist_details) return 2 try: config, args = parseargs(argv[1:], defaults, 2, None) for file in args[1:]: make_meta_file(file, args[0], config.copy(), progress=prog) except ValueError as e: print 'error: ' + str(e) print 'run with no args for parameter explanations' return 0
def render_GET(self, request): global tracker global downloaders self.log(request.uri) verb = request.args['action'][0] if verb=='track': port = request.args['port'][0] params = ['--port', port, '--dfile', 'dstate', '--logfile', defaultDirs['log'] + 'tracker.log'] d = threads.deferToThread(tracker.track, params) # clear the "done" event for the next start d.addCallback(lambda x: tracker.init()) return 'Tracker is listening on {0}.'.format(port) elif verb=='seed' or verb=='download': torrent = request.args['torrent'][0] parts = urlparse(torrent) components = os.path.normpath(parts.path).split(os.sep) torrentName = components[len(components)-1] filename = torrentName[:torrentName.find('.torrent')] params = [verb, '--url', torrent, '--saveas', defaultDirs[verb] + filename, '--ip', request.host.host, '--minport', 56969, '--maxport', 56970, '--logfile', '{0}{1}.log'.format(defaultDirs['log'], verb)] h = HeadlessDownloader(removeDownloader) downloaders[torrent] = h d = threads.deferToThread(h.download, params) #d.addCallback(h.downloadCallback) return '{0} {1}.'.format(verb, torrent) elif verb=='maketorrent': if tracker.port==0: return 'Tracker is not started yet.' source = request.args['source'][0] filename = defaultDirs['seed'] + source target = defaultDirs['torrent'] + source + '.torrent' trackerUri = 'http://{0}:{1}/announce'.format(request.host.host, str(tracker.port)) params = [trackerUri, filename, '--target', target] try: config, args = parseargs(params, defaults, 2, None) for file in args[1:]: make_meta_file(file, args[0], config) except ValueError, e: return 'error: ' + str(e) return 'Make torrent for {0}'.format(source)
def complete(self): try: if self.separatetorrents: completedir(self.d, self.a, self.params, self.flag, self.valcallback, self.filecallback) else: make_meta_file(self.d, self.a, self.params, self.flag, self.valcallback, progress_percent = 1) if not self.flag.isSet(): self.currentLabel.SetLabel('Done!') self.gauge.SetValue(1000) self.button.SetLabel('Close') self.frame.Refresh() except (OSError, IOError), e: self.currentLabel.SetLabel('Error!') self.button.SetLabel('Close') dlg = wxMessageDialog(self.frame, message = 'Error - ' + str(e), caption = 'Error', style = wxOK | wxICON_ERROR) dlg.ShowModal() dlg.Destroy()
def mktorrent(file_name, tracker): torrent_file = tempfile.mkstemp('.torrent') makemetafile.make_meta_file(file_name, "http://%s/announce" % tracker, {'target': torrent_file[1], 'piece_size_pow2': 0}) return torrent_file[1]
# Usage: python murder_make_torrent.py deploy.tar.gz tracker.twitter.com:8998 deploy.torrent import warnings warnings.filterwarnings('ignore', category=DeprecationWarning) from sys import argv, version, exit from os.path import split assert version >= '2', "Install Python 2.0 or greater" from BitTornado.BT1.makemetafile import make_meta_file if __name__ == '__main__': if len(argv) != 4: print "Incorrect number of arguments" print print """Usage: python murder_make_torrent.py <file> <trackerhost:port> <target> For example: python murder_make_torrent.py deploy.tar.gz tracker.twitter.com:8998 deploy.torrent """ exit(1) try: params = {} params["target"] = argv[3] make_meta_file(argv[1], "http://" + argv[2] + "/announce", params) except ValueError, e: print str(e) exit(1)
psyco.full() except: pass from sys import argv, version, exit from os.path import split assert version >= '2', "Install Python 2.0 or greater" from BitTornado.BT1.makemetafile import make_meta_file, defaults, print_announcelist_details from BitTornado.parseargs import parseargs, formatDefinitions def prog(amount): print '%.1f%% complete\r' % (amount * 100), if len(argv) < 3: a,b = split(argv[0]) print 'Usage: ' + b + ' <trackerurl> <file> [file...] [params...]' print print formatDefinitions(defaults, 80) print_announcelist_details() print ('') exit(2) try: config, args = parseargs(argv[1:], defaults, 2, None) for file in args[1:]: make_meta_file(file, args[0], config, progress = prog) except ValueError, e: print 'error: ' + str(e) print 'run with no args for parameter explanations'
except: pass from sys import argv, version, exit from os.path import split assert version >= '2', "Install Python 2.0 or greater" from BitTornado.BT1.makemetafile import make_meta_file, defaults, print_announcelist_details from BitTornado.parseargs import parseargs, formatDefinitions def prog(amount): print '%.1f%% complete\r' % (amount * 100), if len(argv) < 3: a, b = split(argv[0]) print 'Usage: ' + b + ' <trackerurl> <file> [file...] [params...]' print print formatDefinitions(defaults, 80) print_announcelist_details() print('') exit(2) try: config, args = parseargs(argv[1:], defaults, 2, None) for file in args[1:]: make_meta_file(file, args[0], config, progress=prog) except ValueError, e: print 'error: ' + str(e) print 'run with no args for parameter explanations'
# Usage: python murder_make_torrent.py deploy.tar.gz tracker.twitter.com:8998 deploy.torrent import warnings warnings.filterwarnings('ignore', category=DeprecationWarning) from sys import argv, version, exit from os.path import split assert version >= '2', "Install Python 2.0 or greater" from BitTornado.BT1.makemetafile import make_meta_file if __name__ == '__main__': if len(argv) != 4: print "Incorrect number of arguments" print print """Usage: python murder_make_torrent.py <file> <trackerhost:port> <target> For example: python murder_make_torrent.py deploy.tar.gz tracker.twitter.com:8998 deploy.torrent """ exit(1) try: params = {} params["target"] = argv[3] make_meta_file(argv[1], "http://" + argv[2] + "/announce", params) except ValueError, e: print str(e) exit(1)