Here' the code (minus the Qt part):
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
today = datetime.date.today()
regex = re.compile(r'<td>([^<]*)<span style="display:none"> \(<span class="bday dtstart published updated">([^<]*)</span>\)</span></td>')
series = {}
xmldata = xml.dom.minidom.parse("list.xml")
for el in xmldata.getElementsByTagName("show"):
series[el.getAttribute("title")] = el.getAttribute("url")
class Updater(threading.Thread):
def __init__(self, content, row, regex):
threading.Thread.__init__(self)
self.content = content
self.row = row
self.regex = regex
def run(self):
for date1, date2 in regex.findall(self.content):
if date2 == str(today):
dlg.tableWidget.setItem(self.row, 1, QtGui.QTableWidgetItem("It's today!"))
break
y, m, d = map(int, date2.split("-"))
if y >= int(today.year) and m == int(today.month) and int(d >= today.day) or y >= today.year and m > today.month:
dlg.tableWidget.setItem(self.row, 1, QtGui.QTableWidgetItem(date1))
break
else:
dlg.tableWidget.setItem(self.row, 1, QtGui.QTableWidgetItem("No date"))
dlg.tableWidget.setColumnWidth(0, 250)
dlg.tableWidget.setColumnWidth(1, 140)
row = 0
for title, url in series.items():
dlg.tableWidget.insertRow(row)
dlg.tableWidget.setItem(row, 0, QtGui.QTableWidgetItem(title))
content = opener.open(url).read()
t = Updater(content, row, regex)
t.start()
row += 1
I'm guessing the opener part is slow.


Sign In
Create Account


Back to top









