def _load_from_ifs(self, convert_kbin=True, **kwargs): data = self.ifs_data.get(self.start, self.size) if convert_kbin and self.name.endswith( '.xml') and KBinXML.is_binary_xml(data): data = KBinXML(data).to_text().encode('utf8') return data
def _load_from_ifs(self, convert_kbin=True): end = self.start + self.size assert self.start <= len(self.ifs_data) and end <= len(self.ifs_data) data = self.ifs_data[self.start:end] if convert_kbin and self.name.endswith( '.xml') and KBinXML.is_binary_xml(data): data = KBinXML(data).to_text().encode('utf8') return data
def repack(self, manifest, data_blob, tqdm_progress): if tqdm_progress: tqdm_progress.write(self.full_path) tqdm_progress.update(1) elem = etree.SubElement(manifest, self.packed_name) elem.attrib['__type'] = '3s32' data = self.load(convert_kbin=False) if self.name.endswith('.xml') and not KBinXML.is_binary_xml(data): data = KBinXML(data).to_binary() # offset, size, timestamp elem.text = '{} {} {}'.format(len(data_blob.getvalue()), len(data), self.time) data_blob.write(data)