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
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
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()
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()
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))
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()
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()
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