All pastes #128417 Raw Edit

Anonymous

public text v1 · immutable
#128417 ·published 2006-08-12 23:28 UTC
rendered paste body
    def Search(self):   # Function needs testing
        tmpext = []
        results = []
        self.extlist = []
        self.searchRES = []
        self.lstEmu.reset()
        self.lblCount.setLabel('0 '+LANGUAGE[XBMC_LANGUAGE][9])
        searchwhat = [LANGUAGE[XBMC_LANGUAGE][16]]
        for emu in self.emus: searchwhat.append(emu)
        dialog = xbmcgui.Dialog()
        dialogreturn = xbmcgui.Dialog().select(LANGUAGE[XBMC_LANGUAGE][17], searchwhat)
        if dialogreturn == -1: return
        dialogreturn = dialogreturn - 1
        self.ViewState = STATE_SEARCH
        keyboard = xbmc.Keyboard("", LANGUAGE[XBMC_LANGUAGE][18])
        if dialogreturn == -1:  # Selected to search all Emulators
            keyboard.doModal()
            if (keyboard.isConfirmed()):
                for path in self.rompath:
                    roms = os.listdir(path)
                    tmpext = self.romext[self.rompath.index(path)].split(';')
                    for kword in string.split(keyboard.getText()):
                        kword = string.lower(kword)
                        kword = string.strip(kword)
                        for rom in roms[:]:
                            trom = string.lower(rom)
                            if string.find(trom, kword) == -1:
                                roms.remove(rom)
                            rem = True
                            for ext in tmpext:
                                ext = string.lower(ext)
                                if string.find(trom, ext) > -1:
                                    rem = False
                            if rem == True:
                                roms.remove(rom)
                                rem = True
                    for rom in roms:
                        if os.path.isfile(os.path.join(path,rom)):
                            (rpath, rext) = os.path.splitext(rom)
                            results.append((str(rpath), str(rext), self.rompath.index(path)))

        elif dialogreturn >= 0:
            keyboard.doModal()
            if (keyboard.isConfirmed()):
                roms = os.listdir(self.rompath[dialogreturn])
                tmpext = self.romext[dialogreturn].split(';')
                for kword in string.split(keyboard.getText()):
                    kword = string.lower(kword)
                    kword = string.strip(kword)
                    for rom in roms[:]:
                        trom = string.lower(rom)
                        if string.find(trom, kword) == -1:
                            roms.remove(rom)
                        rem = True
                        for ext in tmpext:
                            ext = string.lower(ext)
                            if string.find(trom, ext) > -1:
                                rem = False
                        if rem == True:
                            roms.remove(rom)
                            rem = True
                for rom in roms:
                    if os.path.isfile(self.rompath[dialogreturn]+"\\"+rom):
                        (rpath, rext) = os.path.splitext(rom)
                        results.append((str(rpath), str(rext), dialogreturn))

        results.sort(key=lambda obj:obj[0])
        self.message2('here')
        for result in results:
            self.lstEmu.addItem(xbmcgui.ListItem(result[0], "", "", ""))
            self.extlist.append(result[1])
            self.searchRES.append(result[2])
        self.setFocus(self.lstEmu)
        self.lblCount.setLabel(str(len(results))+' '+LANGUAGE[XBMC_LANGUAGE][9])