コード例 #1
0
ファイル: GenericFile.py プロジェクト: mon/ifstools
    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
コード例 #2
0
    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
コード例 #3
0
 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)