Exemple #1
0
 def dynamicExportFiles(self, _files, _img):
     # 解析文件并输出(添加_dynamic.json)
     '''
         解析_manifest.json文件
     '''
     count = _files.count()
     file_list = [_files.item(i).text() for i in range(count)]
     # 动态加载的全景图名字列表{文件名:[图片名列表]}
     for root_name in file_list:
         manifest_data = self.status.dynamic_binary[root_name]["_manifest.json"]
         # 取出来为二进制数据,需进行转换,bytes --> str --> list
         manifest_data = json.loads(bytes.decode(manifest_data))
         img_list = []  # 图片名列表
         for manifest in manifest_data:
             img_name = manifest['theme']['skybox']
             extension = img_name.rsplit('.', 1)[1]  # 扩展名
             if extension in _img:
                 img_list.append(img_name)
             # 将_dynamic.json数据加入self.status.dynamic_binary[文件名]中
             self.status.dynamic_binary[root_name]['_dynamic.json'] = bytes(json.dumps(img_list), encoding='utf-8')
         # 读取文件名root_name重新打包文件
         out_path = os.path.join(os.path.expanduser('~'), 'Desktop', 'dynamic_' + root_name)
         writer = PyArchive.FileWriter()
         writer.Open(out_path, True)
         # 取出root_name对应的数据写入文件
         for file_name in self.status.dynamic_binary[root_name].keys():
             writer.Write(file_name, self.status.dynamic_binary[root_name][file_name])
         writer.Close()
Exemple #2
0
 def saveImport(self, _inFile):
     self.clean()
     reader = PyArchive.FileReader()
     reader.Open(_inFile)
     # TODO 解析文件
     reader.Close()
     self.Broadcast('/maker/Karaoke/update', None)
 def saveImport(self, _inFile):
     self.clean()
     reader = PyArchive.FileReader()
     reader.Open(_inFile)
     for filename in reader.ListEntries():
         self.status.binary[filename] = reader.Read(filename)
     reader.Close()
     self.Broadcast('/maker/RingPhotography360/update', None)
Exemple #4
0
 def packExportFiles(self, _type):
     out_path = os.path.join(os.path.expanduser('~'), 'Desktop', 'out_' + self.status.save_name + _type)
     writer = PyArchive.FileWriter()
     writer.Open(out_path, True)
     # 写入文件
     for file_name in self.status.pack_binary.keys():
         writer.Write(file_name, self.status.pack_binary[file_name])
     writer.Close()
Exemple #5
0
 def unpackAddFiles(self, _inFile):
     self.status.clean_sign = 'unpack'
     self.clean()
     self.status.save_name = QFileInfo(_inFile).fileName().rsplit('.', 1)[0]
     reader = PyArchive.FileReader()
     reader.Open(_inFile)
     for filename in reader.ListEntries():
         self.status.unpack_binary[filename] = reader.Read(filename)
     reader.Close()
     self.Broadcast('/setting/tools/unpack/update', None)
Exemple #6
0
    def saveExport(self, _outFile):
        writer = PyArchive.FileWriter()
        writer.Open(_outFile, True)

        # 写入所有文件
        writer.Write("audio#1.ogg", self.status.music)
        writer.Write("audio#2.ogg", self.status.accompaniment)
        writer.Write("app.asset",
                     Util.fileToBytes('./template/Karaoke/app.asset'))
        writer.Write("app.lua", Util.fileToBytes('./template/Karaoke/app.lua'))
        writer.Write("config.lua", self.renderConfig())
        writer.Write("preloads.json",
                     Util.stringToBytes(json.dumps(self.status.preloads)))
        writer.Close()
Exemple #7
0
 def dynamicAddFiles(self, _inFiles):
     self.status.clean_sign = 'dynamic'
     self.clean()
     # 添加文件,存入路径和对应数据
     for file_path in _inFiles:
         key_name = QFileInfo(file_path).fileName()
         # 读取该文件里面的文件数据
         reader = PyArchive.FileReader()
         reader.Open(file_path)
         self.status.dynamic_binary[key_name] = {}
         for filename in reader.ListEntries():
             # {根文件名 : {资源文件名 : 资源数据}}
             self.status.dynamic_binary[key_name][filename] = reader.Read(filename)
         reader.Close()
     self.Broadcast('/setting/tools/dynamic/update', None)
Exemple #8
0
 def saveExport(self, _outFile):
     self.status.preloads[0]['count'] = len(self.status.photos)
     writer = PyArchive.FileWriter()
     writer.Open(_outFile, True)
     # 写入文件
     idx = 0
     for filename in self.status.binary.keys():
         idx += 1
         writer.Write('img#{0}.jpg'.format(idx),
                      self.status.binary[filename])
     writer.Write("app.asset",
                  Util.fileToBytes('./template/PhotoAlbum/app.asset'))
     writer.Write("app.lua",
                  Util.fileToBytes('./template/PhotoAlbum/app.lua'))
     writer.Write("config.lua", self.renderConfig())
     writer.Write("preloads.json",
                  Util.stringToBytes(json.dumps(self.status.preloads)))
     writer.Close()
Exemple #9
0
    def saveExport(self, _outFile):
        writer = PyArchive.FileWriter()
        writer.Open(_outFile, True)

        # 判断是否有朗诵音频
        if 0 != len(self.status.audio):
            writer.Write("audio#1.ogg", self.status.audio)
            writer.Write("preloads.json",
                         Util.stringToBytes(json.dumps(self.status.preloads)))
        else:
            writer.Write("preloads.json", Util.stringToBytes(json.dumps([])))

        # 写入所有文件
        writer.Write("app.asset",
                     Util.fileToBytes('./template/Reciting/app.asset'))
        writer.Write("app.lua",
                     Util.fileToBytes('./template/Reciting/app.lua'))
        writer.Write("config.lua", self.renderConfig())

        writer.Close()