class BatotoThread(Thread): def __init__(self, pType, lines, frame, order=True): Thread.__init__(self) self.pType = pType self.lines = lines self.parser = URLParser() self.frame = frame self.order = order self.start() #start automatically def run(self): wx.CallAfter(self.frame.SetLocked, True) if self.pType == 0: for line in self.lines: if self.order: self.ParseFirstThread(line) else: self.ParseLastThread(line) elif self.pType == 1: self.ParseLastThread(self.lines) else: self.ParseFirstThread(self.lines) wx.CallAfter(self.frame.SetLocked, False) def ParseFirstThread(self, line): self.ParseLine(line) wx.CallAfter(self.frame.UiClear, False) def ParseLastThread(self, line): self.ParseLine(line); wx.CallAfter(self.frame.UiClear, True) def ParseLine(self, line): if self.parser.testURL(line): global HOME_DIR self.parser.downloadFromURL(line, HOME_DIR, self.frame)