Exemple #1
0
    def endElement(self, name):
        if self._state == SkedContentHandler.IN_CONFIG_OPTION \
        and name == "option":
            if self.import_config:
                self._opt.set_str(self._tmp_name, self._tmp_data)
            self._tmp_name = None
            self._tmp_data = None
            self._state = SkedContentHandler.IN_CONFIG
        elif self._state == SkedContentHandler.IN_CONFIG \
        and name == "configuration":
            if self.import_config:
                self._opt.save()
            self._state = SkedContentHandler.IN_SKEDDATA

        elif self._state == SkedContentHandler.IN_HISTORY_ITEM \
        and name == "item":
            self._tmp_hist_items.append(self._tmp_data)
            self._tmp_data = None
            self._state = SkedContentHandler.IN_HISTORY
        elif self._state == SkedContentHandler.IN_HISTORY \
        and name == "history":
            if self.import_history:
                hist = HistoryManager(self._db, self._tmp_name.encode("utf-8"))
                hist.set_items(self._tmp_hist_items)
                hist.save()
            self._tmp_name = None
            self._tmp_hist_items = None
            self._state = SkedContentHandler.IN_SKEDDATA
        elif self._state == SkedContentHandler.IN_ENTRY \
        and name == "entry":
            if self.import_pages:
                self._pm.save(Page(self._tmp_name, self._tmp_data), False)
            self._tmp_name = None
            self._tmp_data = None
            self._state = SkedContentHandler.IN_SKEDDATA
        elif self._state == SkedContentHandler.IN_SKEDDATA \
        and name == "skeddata":
            self._state = SkedContentHandler.DONE
        else:
            raise DataFormatError