コード例 #1
0
    def run(self, scrwin):
        def reread():
            self.multitorrent.schedule(0, self.reread_config)

        self.d = CursesDisplayer(scrwin, self.errlist, self.doneflag, reread)
        try:
            self.multitorrent = Multitorrent(self.config, self.doneflag)
            # raises BTFailure if bad
            metainfo = ConvertedMetainfo(bdecode(self.metainfo))
            torrent_name = metainfo.name_fs
            if config['save_as']:
                if config['save_in']:
                    raise BTFailure('You cannot specify both --save_as and '
                                    '--save_in')
                saveas = config['save_as']
            elif config['save_in']:
                saveas = os.path.join(config['save_in'], torrent_name)
            else:
                saveas = torrent_name

            self.d.set_torrent_values(metainfo.name, os.path.abspath(saveas),
                                      metainfo.file_size, len(metainfo.hashes))
            self.torrent = self.multitorrent.start_torrent(
                metainfo, self.config, self, saveas)
        except BTFailure, e:
            errlist.append(str(e))
            return
コード例 #2
0
ファイル: anondownloadcurses.py プロジェクト: Miserlou/Anomos
    def run(self, scrwin):
        def reread():
            self.multitorrent.schedule(0, self.reread_config)
        self.d = CursesDisplayer(scrwin, self.errlist, self.doneflag, reread)
        try:
            self.multitorrent = Multitorrent(self.config, self.doneflag)
            # raises BTFailure if bad
            metainfo = ConvertedMetainfo(bdecode(self.metainfo))
            torrent_name = metainfo.name_fs
            if config['save_as']:
                if config['save_in']:
                    raise BTFailure('You cannot specify both --save_as and '
                                    '--save_in')
                saveas = config['save_as']
            elif config['save_in']:
                saveas = os.path.join(config['save_in'], torrent_name)
            else:
                saveas = torrent_name

            self.d.set_torrent_values(metainfo.name, os.path.abspath(saveas),
                                metainfo.file_size, len(metainfo.hashes))
            self.torrent = self.multitorrent.start_torrent(metainfo,
                                self.config, self, saveas)
        except BTFailure, e:
            errlist.append(str(e))
            return
コード例 #3
0
class DL(Feedback):

    def __init__(self, metainfo, config):
        self.doneflag = threading.Event()
        self.metainfo = metainfo
        self.config = config

    def run(self):
        self.d = HeadlessDisplayer(self.doneflag)
        try:
            self.multitorrent = Multitorrent(self.config, self.doneflag)
            # raises BTFailure if bad
            metainfo = ConvertedMetainfo(bdecode(self.metainfo))
            torrent_name = metainfo.name_fs
            if config['save_as']:
                if config['save_in']:
                    raise BTFailure('You cannot specify both --save_as and '
                                    '--save_in')
                saveas = config['save_as']
            elif config['save_in']:
                saveas = os.path.join(config['save_in'], torrent_name)
            else:
                saveas = torrent_name

            self.d.set_torrent_values(metainfo.name, os.path.abspath(saveas),
                                metainfo.file_size, len(metainfo.hashes))
            self.torrent = self.multitorrent.start_torrent(metainfo,
                                self.config, self, saveas)
        except BTFailure, e:
            print str(e)
            return
        self.get_status()
        self.multitorrent.event_handler.loop()
        self.d.display({'activity':'shutting down', 'fractionDone':0})
        self.torrent.shutdown()
コード例 #4
0
    def __init__(self, config, output, configfile_key):
        try:
            self.config = config
            self.output = output
            self.configfile_key = configfile_key

            self.torrent_dir = config['torrent_dir']
            self.torrent_cache = {}
            self.file_cache = {}
            self.blocked_files = {}

            self.torrent_list = []
            self.downloads = {}
            self.doneflag = Event()

            self.hashcheck_queue = []
            self.hashcheck_store = {}
            self.hashcheck_current = None

            self.multitorrent = Multitorrent(config, self.doneflag)

            self.multitorrent.schedule(0, self.scan)
            self.multitorrent.schedule(0, self.stats)

            try:
                import signal

                def handler(signum, frame):
                    self.multitorrent.schedule(0, self.read_config)

                signal.signal(signal.SIGHUP, handler)
            except Exception, e:
                self.output.message('Could not set signal handler: ' + str(e))

            self.multitorrent.event_handler.loop()

            self.output.message('shutting down')
            for infohash in self.torrent_list:
                self.output.message('dropped "' +
                                    self.torrent_cache[infohash]['path'] + '"')
                torrent = self.downloads[infohash]
                if torrent is not None:
                    torrent.shutdown()
コード例 #5
0
ファイル: TorrentQueue.py プロジェクト: self20/Anomos
 def run(self, ui, ui_wrap, startflag):
     self.ui = ui
     self.run_ui_task = ui_wrap
     self.multitorrent = Multitorrent(self.config,
                                      self.doneflag,
                                      listen_fail_ok=True)
     self.schedule = self.multitorrent.event_handler.schedule
     self.controlsocket.set_callback(self.external_command)
     try:
         self._restore_state()
     except BTFailure, e:
         self.queue = []
         self.other_torrents = []
         self.torrents = {}
         self.global_error("ERROR", "Could not load saved state: " + str(e))
コード例 #6
0
ファイル: launchmanycore.py プロジェクト: Miserlou/Anomos
    def __init__(self, config, output, configfile_key):
        try:
            self.config = config
            self.output = output
            self.configfile_key = configfile_key

            self.torrent_dir = config['torrent_dir']
            self.torrent_cache = {}
            self.file_cache = {}
            self.blocked_files = {}

            self.torrent_list = []
            self.downloads = {}
            self.doneflag = Event()

            self.hashcheck_queue = []
            self.hashcheck_store = {}
            self.hashcheck_current = None

            self.multitorrent = Multitorrent(config, self.doneflag)

            self.multitorrent.schedule(0, self.scan)
            self.multitorrent.schedule(0, self.stats)

            try:
                import signal
                def handler(signum, frame):
                    self.multitorrent.schedule(0, self.read_config)
                signal.signal(signal.SIGHUP, handler)
            except Exception, e:
                self.output.message('Could not set signal handler: ' + str(e))

            self.multitorrent.event_handler.loop()

            self.output.message('shutting down')
            for infohash in self.torrent_list:
                self.output.message('dropped "'+self.torrent_cache[infohash]['path']+'"')
                torrent = self.downloads[infohash]
                if torrent is not None:
                    torrent.shutdown()
コード例 #7
0
class DL(Feedback):
    def __init__(self, metainfo, config, errlist):
        self.doneflag = threading.Event()
        self.metainfo = metainfo
        self.config = config
        self.errlist = errlist

    def run(self, scrwin):
        def reread():
            self.multitorrent.schedule(0, self.reread_config)

        self.d = CursesDisplayer(scrwin, self.errlist, self.doneflag, reread)
        try:
            self.multitorrent = Multitorrent(self.config, self.doneflag)
            # raises BTFailure if bad
            metainfo = ConvertedMetainfo(bdecode(self.metainfo))
            torrent_name = metainfo.name_fs
            if config['save_as']:
                if config['save_in']:
                    raise BTFailure('You cannot specify both --save_as and '
                                    '--save_in')
                saveas = config['save_as']
            elif config['save_in']:
                saveas = os.path.join(config['save_in'], torrent_name)
            else:
                saveas = torrent_name

            self.d.set_torrent_values(metainfo.name, os.path.abspath(saveas),
                                      metainfo.file_size, len(metainfo.hashes))
            self.torrent = self.multitorrent.start_torrent(
                metainfo, self.config, self, saveas)
        except BTFailure, e:
            errlist.append(str(e))
            return
        self.get_status()
        self.multitorrent.event_handler.loop()

        self.d.display({'activity': 'shutting down', 'fractionDone': 0})
        self.torrent.shutdown()
コード例 #8
0
    def run(self):
        self.d = HeadlessDisplayer(self.doneflag)
        try:
            self.multitorrent = Multitorrent(self.config, self.doneflag)
            # raises BTFailure if bad
            metainfo = ConvertedMetainfo(bdecode(self.metainfo))
            torrent_name = metainfo.name_fs
            if config['save_as']:
                if config['save_in']:
                    raise BTFailure('You cannot specify both --save_as and '
                                    '--save_in')
                saveas = config['save_as']
            elif config['save_in']:
                saveas = os.path.join(config['save_in'], torrent_name)
            else:
                saveas = torrent_name

            self.d.set_torrent_values(metainfo.name, os.path.abspath(saveas),
                                metainfo.file_size, len(metainfo.hashes))
            self.torrent = self.multitorrent.start_torrent(metainfo,
                                self.config, self, saveas)
        except BTFailure, e:
            print str(e)
            return