Пример #1
0
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]
Пример #2
0
 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)
Пример #4
0
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)
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
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)
Пример #8
0
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'
Пример #9
0
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
Пример #10
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()
Пример #12
0
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]
Пример #13
0
# 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'
Пример #15
0
    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'
Пример #16
0
# 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)