def setSetting(self, id, val): # not work in Python 2.6 # item = self.root.find("./setting[@id='%s']" % str(id)) item = None settings = self.root.findall("setting") for setting in settings: if setting.attrib.get('id') == id: item = setting break if item is not None: item.set('value', str(val)) else: ET.SubElement(self.root, 'setting', attrib={ 'id': str(id), 'value': str(val) }) with filesystem.fopen(self._addon_xml, 'w') as f: f.write('<settings>\n') for item in self.root: f.write(' <setting id="%s" value="%s" />\n' % (Addon._xml( item.get('id')), Addon._xml(item.get('value')))) f.write('</settings>\n') self.mtime = filesystem.getmtime(self._addon_xml)
def load(self): if not filesystem.exists(self._addon_xml): self.root = None self.mtime = 0 return with filesystem.fopen(self._addon_xml, 'r') as f: content = f.read() self.root = ET.fromstring(content) self.mtime = filesystem.getmtime(self._addon_xml)
def getSetting(self, s): if not filesystem.exists(self._addon_xml): return u'' if self.mtime != filesystem.getmtime(self._addon_xml): self.load() for item in self.root: if item.get('id') == s: return item.get('value').encode('utf-8') return u''
def setSetting(self, id, val): # not work in Python 2.6 # item = self.root.find("./setting[@id='%s']" % str(id)) item = None settings = self.root.findall("setting") for setting in settings: if setting.attrib.get('id') == id: item = setting break if item is not None: item.set('value', str(val)) else: ET.SubElement(self.root, 'setting', attrib={'id': str(id), 'value': str(val)}) with filesystem.fopen(self._addon_xml, 'w') as f: f.write('<settings>\n') for item in self.root: f.write(' <setting id="%s" value="%s" />\n' % (Addon._xml(item.get('id')), Addon._xml(item.get('value')))) f.write('</settings>\n') self.mtime = filesystem.getmtime(self._addon_xml)
def check_modify_time(fn): import time, filesystem mt = filesystem.getmtime(fn) if abs(from_time - mt) < 3600: return True return False