turbine-lib 0.1.5__tar.gz → 0.1.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/PKG-INFO +1 -1
  2. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/pyproject.toml +1 -1
  3. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/datexportapi.py +5 -5
  4. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/datfile.py +9 -1
  5. turbine_lib-0.1.7/turbine_lib/jpgsubfile.py +35 -0
  6. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/subfile.py +1 -0
  7. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib.egg-info/PKG-INFO +1 -1
  8. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib.egg-info/SOURCES.txt +1 -0
  9. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/README.md +0 -0
  10. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/setup.cfg +0 -0
  11. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/__init__.py +0 -0
  12. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/binarydata.py +0 -0
  13. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/database.py +0 -0
  14. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/ddssubfile.py +0 -0
  15. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/font_convert.py +0 -0
  16. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/fontsubfile.py +0 -0
  17. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/libs/datexport.dll +0 -0
  18. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/libs/msvcp71.dll +0 -0
  19. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/libs/msvcp90.dll +0 -0
  20. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/libs/msvcr71.dll +0 -0
  21. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/libs/zlib1T.dll +0 -0
  22. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/subfiledata.py +0 -0
  23. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/textsubfile.py +0 -0
  24. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/textutils.py +0 -0
  25. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib/utils.py +0 -0
  26. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib.egg-info/dependency_links.txt +0 -0
  27. {turbine_lib-0.1.5 → turbine_lib-0.1.7}/turbine_lib.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: turbine_lib
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Summary: 仅支持Windows 32位Python的库
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "turbine_lib"
7
- version = "0.1.5"
7
+ version = "0.1.7"
8
8
  description = "仅支持Windows 32位Python的库"
9
9
  classifiers = [
10
10
  "Programming Language :: Python :: 3",
@@ -72,13 +72,13 @@ class DatExportApi:
72
72
  # GetSubfileData
73
73
  self.get_subfile_data_func = self.datexport_dll.GetSubfileData
74
74
  self.get_subfile_data_func.argtypes = [
75
- wintypes.INT, # handle
76
- wintypes.INT, # file_id
75
+ ctypes.c_int32, # handle
76
+ ctypes.c_int32, # file_id
77
77
  ctypes.c_void_p, # buffer for storing data
78
- wintypes.INT, # 0
79
- ctypes.POINTER(wintypes.INT) # version
78
+ ctypes.c_int32, # 0
79
+ ctypes.POINTER(ctypes.c_int32) # version
80
80
  ]
81
- self.get_subfile_data_func.restype = wintypes.INT
81
+ self.get_subfile_data_func.restype = ctypes.c_int32
82
82
 
83
83
  # CloseDatFile
84
84
  self.close_dat_file_func = self.datexport_dll.CloseDatFile
@@ -5,6 +5,7 @@ from turbine_lib.database import Database
5
5
  from turbine_lib.datexportapi import DatExportApi
6
6
  from turbine_lib.ddssubfile import DDSSubfile
7
7
  from turbine_lib.fontsubfile import SubfileFONT
8
+ from turbine_lib.jpgsubfile import SubfileJPG
8
9
  from turbine_lib.subfile import string_from_file_type, file_type_from_file_contents, FILE_TYPE, Subfile
9
10
  from turbine_lib.subfiledata import SubfileData
10
11
  from turbine_lib.textsubfile import TextSubfile
@@ -243,7 +244,9 @@ class DatFile:
243
244
  version = 0
244
245
  size, version = self.api_.get_subfile_data(
245
246
  self.file_handle_, file_id, self.export_data_buf_.data(), version)
246
-
247
+ if size <= 0:
248
+ print(f"File size error: {file_id}")
249
+ return
247
250
  data = self.export_data_buf_.cut_data(0, size)
248
251
  file_result = self.build_for_export(file_id, data)
249
252
 
@@ -286,6 +289,9 @@ class DatFile:
286
289
  elif ext == ".dds":
287
290
  for_import = DDSSubfile.build_for_import(old_data, outer_data)
288
291
  return for_import
292
+ elif ext == ".jpg":
293
+ for_import = SubfileJPG.build_for_import(old_data, outer_data)
294
+ return for_import
289
295
  elif ext == ".fontbin":
290
296
  for_import = SubfileFONT.build_for_import(old_data, outer_data)
291
297
  return for_import
@@ -334,6 +340,8 @@ class DatFile:
334
340
  result = DDSSubfile.build_for_export(inner_data)
335
341
  elif file_type == FILE_TYPE.FONT:
336
342
  result = SubfileFONT.build_for_export(inner_data)
343
+ elif file_type == FILE_TYPE.JPG:
344
+ result = SubfileJPG.build_for_export(inner_data)
337
345
  # Add other file types as needed
338
346
  else:
339
347
  # Default implementation for unknown types
@@ -0,0 +1,35 @@
1
+ from turbine_lib.binarydata import BinaryData
2
+ from turbine_lib.subfile import Subfile
3
+ from turbine_lib.subfiledata import SubfileData
4
+
5
+
6
+ class JPG:
7
+ """Marker class for JPG file type"""
8
+ pass
9
+
10
+
11
+ class SubfileJPG(Subfile):
12
+ """Python translation of the C++ Subfile<JPG> template specialization"""
13
+
14
+ @staticmethod
15
+ def build_for_export(file_data):
16
+ """
17
+ Build data for export from JPG file
18
+ :param file_data: BinaryData with file data
19
+ :return: SubfileData with processed data
20
+ """
21
+ result = SubfileData()
22
+ result.binary_data = file_data.cut_data(24)
23
+ result.options["ext"] = ".jpg"
24
+ return result
25
+
26
+ @staticmethod
27
+ def build_for_import(old_data, data):
28
+ """
29
+ Build data for import to JPG file
30
+ :param old_data: BinaryData with old data
31
+ :param data: SubfileData with new data
32
+ :return: BinaryData with processed data
33
+ """
34
+ file_size = BinaryData.from_number(4, data.binary_data.size())
35
+ return old_data.cut_data(0, 20) + file_size + data.binary_data
@@ -39,6 +39,7 @@ def file_type_from_file_contents(file_id, file_data):
39
39
  # jpeg / dds check
40
40
  if (file_id >> 24) == 0x41:
41
41
  soi = file_data.to_number(2, 24)
42
+
42
43
  # long long marker = file_data.ToNumber<2>(26)
43
44
 
44
45
  # auto markerSize = header.ToNumber<short>(28)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: turbine_lib
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Summary: 仅支持Windows 32位Python的库
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -8,6 +8,7 @@ turbine_lib/datfile.py
8
8
  turbine_lib/ddssubfile.py
9
9
  turbine_lib/font_convert.py
10
10
  turbine_lib/fontsubfile.py
11
+ turbine_lib/jpgsubfile.py
11
12
  turbine_lib/subfile.py
12
13
  turbine_lib/subfiledata.py
13
14
  turbine_lib/textsubfile.py
File without changes
File without changes