示例#1
0
    def __init__(self,
                 queue,
                 src=None,
                 dest=None,
                 forceasklocation=False,
                 caller=""):
        self.queue = queue
        self.utility = self.queue.utility
        self.list = self.utility.list
        self.listindex = len(self.utility.torrents["all"])

        self.src = src

        self.status = TorrentStatus(self)
        self.actions = TorrentActions(self)
        self.dialogs = TorrentDialogs(self)
        self.connection = TorrentConnections(self)

        #########
        self.metainfo = self.getResponse()
        if self.metainfo is None:
            return

        # Get infohash first before doing anything else
        self.infohash = sha(bencode(self.metainfo['info'])).hexdigest()

        self.torrentconfig = TorrentConfig(self)

        # Check for valid windows filename
        if sys.platform == 'win32':
            fixedname = self.utility.fixWindowsName(
                self.metainfo['info']['name'])
            if fixedname:
                self.metainfo['info']['name'] = fixedname

        self.info = self.metainfo['info']

        self.title = None

        # Initialize values to defaults

        self.files = TorrentFiles(self)

        # Setup the destination
        self.files.setupDest(dest, forceasklocation, caller)

        if self.files.dest is None:
            return

        #########

        # Priority "Normal"
        priorities = [
            self.utility.lang.get('highest'),
            self.utility.lang.get('high'),
            self.utility.lang.get('normal'),
            self.utility.lang.get('low'),
            self.utility.lang.get('lowest')
        ]
        currentprio = self.utility.config.Read('defaultpriority', "int")
        if currentprio < 0:
            currentprio = 0
        elif currentprio >= len(priorities):
            currentprio = len(priorities) - 1
        self.prio = currentprio

        self.color = {'text': None, 'bgcolor': None}

        # Done flag
        self.messages = {"current": "", "log": [], "timer": None}

        self.checkedonce = False

        self.totalpeers = "?"
        self.totalseeds = "?"