=== modified file 'bughelper-server.py' --- bughelper-server.py 2007-09-03 09:26:45 +0000 +++ bughelper-server.py 2007-09-11 07:19:41 +0000 @@ -17,6 +17,7 @@ import shutil import logging import optparse +import libxml2 from bugHelper.commandLine import commandLine import bugHelper.bzrutils as bzrutils from bugHelper.config import Config @@ -35,20 +36,41 @@ def __init__(self, f): self.__items = {"bughelper-server": [], "bughelper-cron": []} + self.__old = {"bughelper-server": {}, "bughelper-cron": {}} + try: + old = libxml2.htmlParseFile("%s/index.html" %settings["result-path"], None) + x = old.xpathEval("//tr[@id]") + for i in x: + content = {} + id = i.prop("id") + y = i.xpathEval("td[1]/a") + filename = y[0].prop("href") + description = y[0].content + y = i.xpathEval("td[2]/small") + commandline = y[0].content.split() + self.__old[id.split("_")[0]][id] = {"cline": commandline, "resultfile": filename, + "description": description} + except: + pass self.fileobj = file(f, "w+") self._header() self.__start = time.time() def additem(self, content, type="bughelper-server"): + h = "%s_%s" %(type, hash(" ".join(content["cline"]))) + try: + del self.__old[type][h] + except: pass self.__items[type].append(content) - def _add(self, content): + def _add(self, content, type): + h = "%s_%s" %(type, hash(" ".join(content["cline"]))) self._write(""" - + %s %s -""" %(IndexFile.style_row[self.__rowcount], content["resultfile"], +""" %(IndexFile.style_row[self.__rowcount], h, content["resultfile"], content["description"], " ".join(content["cline"]))) self.__rowcount = not(self.__rowcount) @@ -82,15 +104,21 @@ self._write("""""") def close(self): - if self.__items["bughelper-server"]: + if self.__items["bughelper-server"] or self.__old["bughelper-server"]: self._table_header("output of bughelper-server") for i in self.__items["bughelper-server"]: - self._add(i) + self._add(i, "bughelper-server") + for v in self.__old["bughelper-server"].itervalues(): + if os.path.exists(os.path.join(settings["result-path"], v["resultfile"])): + self._add(v, "bughelper-server") self._table_footer() - if self.__items["bughelper-cron"]: + if self.__items["bughelper-cron"] or self.__old["bughelper-cron"]: self._table_header("output of bughelper-cron") for i in self.__items["bughelper-cron"]: - self._add(i) + self._add(i, "bughelper-cron") + for v in self.__old["bughelper-cron"].itervalues(): + if os.path.exists(os.path.join(settings["result-path"], v["resultfile"])): + self._add(v, "bughelper-cron") self._table_footer() self._footer() self.fileobj.close()