@@ -2085,7 +2085,7 @@ def ReadFileHeaderDataWithContent(fp, listonly=False, uncompress=True, skipcheck
20852085 fcompression = HeaderOut [12 ]
20862086 fcsize = int (HeaderOut [13 ], 16 )
20872087 fseeknextfile = HeaderOut [25 ]
2088- fjsonsize = int (HeaderOut [27 ], 16 )
2088+ fjsonsize = int (HeaderOut [29 ], 16 )
20892089 fjsoncontent = {}
20902090 fprejsoncontent = fp .read (fjsonsize ).decode ("UTF-8" )
20912091 if (fjsonsize > 0 ):
@@ -2207,11 +2207,13 @@ def ReadFileHeaderDataWithContentToArray(fp, listonly=False, contentasfile=True,
22072207 fdev_minor = int (HeaderOut [24 ], 16 )
22082208 fdev_major = int (HeaderOut [25 ], 16 )
22092209 fseeknextfile = HeaderOut [26 ]
2210- fjsonsize = int (HeaderOut [27 ], 16 )
2211- fextrasize = int (HeaderOut [28 ], 16 )
2212- fextrafields = int (HeaderOut [29 ], 16 )
2210+ fjsontype = HeaderOut [27 ]
2211+ fjsonlen = int (HeaderOut [28 ], 16 )
2212+ fjsonsize = int (HeaderOut [29 ], 16 )
2213+ fextrasize = int (HeaderOut [30 ], 16 )
2214+ fextrafields = int (HeaderOut [31 ], 16 )
22132215 fextrafieldslist = []
2214- extrastart = 30
2216+ extrastart = 32
22152217 extraend = extrastart + fextrafields
22162218 while (extrastart < extraend ):
22172219 fextrafieldslist .append (HeaderOut [extrastart ])
@@ -2309,7 +2311,7 @@ def ReadFileHeaderDataWithContentToArray(fp, listonly=False, contentasfile=True,
23092311 if (not contentasfile ):
23102312 fcontents = fcontents .read ()
23112313 outlist = {'fheadersize' : fheadsize , 'fhstart' : fheaderstart , 'fhend' : fhend , 'ftype' : ftype , 'fencoding' : fencoding , 'fcencoding' : fcencoding , 'fname' : fname , 'fbasedir' : fbasedir , 'flinkname' : flinkname , 'fsize' : fsize , 'fatime' : fatime , 'fmtime' : fmtime , 'fctime' : fctime , 'fbtime' : fbtime , 'fmode' : fmode , 'fchmode' : fchmode , 'ftypemod' : ftypemod , 'fwinattributes' : fwinattributes , 'fcompression' : fcompression , 'fcsize' : fcsize , 'fuid' : fuid , 'funame' : funame , 'fgid' : fgid , 'fgname' : fgname , 'finode' : finode , 'flinkcount' : flinkcount ,
2312- 'fdev' : fdev , 'fminor' : fdev_minor , 'fmajor' : fdev_major , 'fseeknextfile' : fseeknextfile , 'fheaderchecksumtype' : HeaderOut [- 4 ], 'fcontentchecksumtype' : HeaderOut [- 3 ], 'fnumfields' : fnumfields + 2 , 'frawheader' : HeaderOut , 'fextrafields' : fextrafields , 'fextrafieldsize' : fextrasize , 'fextradata' : fextrafieldslist , 'fjsondata' : fjsoncontent , 'fheaderchecksum' : fcs , 'fcontentchecksum' : fccs , 'fhascontents' : pyhascontents , 'fcontentstart' : fcontentstart , 'fcontentend' : fcontentend , 'fcontentasfile' : contentasfile , 'fcontents' : fcontents }
2314+ 'fdev' : fdev , 'fminor' : fdev_minor , 'fmajor' : fdev_major , 'fseeknextfile' : fseeknextfile , 'fheaderchecksumtype' : HeaderOut [- 4 ], 'fcontentchecksumtype' : HeaderOut [- 3 ], 'fnumfields' : fnumfields + 2 , 'frawheader' : HeaderOut , 'fextrafields' : fextrafields , 'fextrafieldsize' : fextrasize , 'fextradata' : fextrafieldslist , 'fjsontype' : fjsontype , 'fjsonlen' : fjsonlen , 'fjsonsize' : fjsonsize , ' fjsondata' : fjsoncontent , 'fheaderchecksum' : fcs , 'fcontentchecksum' : fccs , 'fhascontents' : pyhascontents , 'fcontentstart' : fcontentstart , 'fcontentend' : fcontentend , 'fcontentasfile' : contentasfile , 'fcontents' : fcontents }
23132315 return outlist
23142316
23152317
@@ -2357,11 +2359,13 @@ def ReadFileHeaderDataWithContentToList(fp, listonly=False, contentasfile=False,
23572359 fdev_minor = int (HeaderOut [24 ], 16 )
23582360 fdev_major = int (HeaderOut [25 ], 16 )
23592361 fseeknextfile = HeaderOut [26 ]
2360- fjsonsize = int (HeaderOut [27 ], 16 )
2361- fextrasize = int (HeaderOut [28 ], 16 )
2362- fextrafields = int (HeaderOut [29 ], 16 )
2362+ fjsontype = HeaderOut [27 ]
2363+ fjsonlen = int (HeaderOut [28 ], 16 )
2364+ fjsonsize = int (HeaderOut [29 ], 16 )
2365+ fextrasize = int (HeaderOut [30 ], 16 )
2366+ fextrafields = int (HeaderOut [31 ], 16 )
23632367 fextrafieldslist = []
2364- extrastart = 30
2368+ extrastart = 32
23652369 extraend = extrastart + fextrafields
23662370 while (extrastart < extraend ):
23672371 fextrafieldslist .append (HeaderOut [extrastart ])
@@ -3380,9 +3384,10 @@ def AppendFileHeaderWithContent(fp, filevalues=[], extradata=[], jsondata={}, fi
33803384 extrasizestr = extrasizestr + \
33813385 AppendNullBytes (extradata , formatspecs ['format_delimiter' ])
33823386 extrasizelen = format (len (extrasizestr ), 'x' ).lower ()
3383- tmpoutlen = len (filevalues ) + len (extradata ) + 7
3387+ tmpoutlen = len (filevalues ) + len (extradata ) + 9
33843388 tmpoutlenhex = format (tmpoutlen , 'x' ).lower ()
33853389 tmpoutlist = filevalues
3390+ fjsontype = "json"
33863391 if (len (jsondata ) > 0 ):
33873392 try :
33883393 fjsoncontent = base64 .b64encode (json .dumps (jsondata , separators = (',' , ':' )).encode ("UTF-8" ))
@@ -3394,7 +3399,10 @@ def AppendFileHeaderWithContent(fp, filevalues=[], extradata=[], jsondata={}, fi
33943399 else :
33953400 fjsoncontent = "" .encode ("UTF-8" )
33963401 fjsonsize = format (len (fjsoncontent ), 'x' ).lower ()
3402+ fjsonlen = format (len (jsondata ), 'x' ).lower ()
33973403 tmpoutlist .insert (0 , tmpoutlenhex )
3404+ tmpoutlist .append (fjsontype )
3405+ tmpoutlist .append (fjsonlen )
33983406 tmpoutlist .append (fjsonsize )
33993407 tmpoutlist .append (extrasizelen )
34003408 tmpoutlist .append (extrafields )
@@ -7837,14 +7845,16 @@ def ArchiveFileSeekToFileName(infile, fmttype="auto", seekfile=None, listonly=Fa
78377845 prefcompression = preheaderdata [14 ]
78387846 prefcsize = int (preheaderdata [15 ], 16 )
78397847 prefseeknextfile = preheaderdata [26 ]
7840- prefjsonsize = int (HeaderOut [27 ], 16 )
7848+ prefjsontype = preheaderdata [27 ]
7849+ prefjsonlen = int (preheaderdata [28 ], 16 )
7850+ prefjsonsize = int (preheaderdata [29 ], 16 )
78417851 prefjoutfprejsoncontent = fp .read (prefjsonsize ).decode ("UTF-8" )
78427852 if (prefjsonsize <= 0 ):
78437853 prefjoutfprejsoncontent = "" .encode ()
78447854 fp .seek (len (formatspecs ['format_delimiter' ]), 1 )
7845- prefextrasize = int (preheaderdata [28 ], 16 )
7846- prefextrafields = int (preheaderdata [29 ], 16 )
7847- extrastart = 30
7855+ prefextrasize = int (preheaderdata [30 ], 16 )
7856+ prefextrafields = int (preheaderdata [31 ], 16 )
7857+ extrastart = 32
78487858 extraend = extrastart + prefextrafields
78497859 prefcs = preheaderdata [- 2 ].lower ()
78507860 prenewfcs = preheaderdata [- 1 ].lower ()
@@ -8149,7 +8159,9 @@ def ArchiveFileValidate(infile, fmttype="auto", formatspecs=__file_format_multi_
81498159 outfdev_minor = int (inheaderdata [24 ], 16 )
81508160 outfdev_major = int (inheaderdata [25 ], 16 )
81518161 outfseeknextfile = inheaderdata [26 ]
8152- outfjsonsize = int (inheaderdata [27 ], 16 )
8162+ outfjsontype = inheaderdata [27 ]
8163+ outfjsonlen = int (inheaderdata [28 ], 16 )
8164+ outfjsonsize = int (inheaderdata [29 ], 16 )
81538165 outfjsoncontent = {}
81548166 outfprejsoncontent = fp .read (outfjsonsize ).decode ("UTF-8" )
81558167 if (outfjsonsize > 0 ):
@@ -8165,10 +8177,10 @@ def ArchiveFileValidate(infile, fmttype="auto", formatspecs=__file_format_multi_
81658177 outfprejsoncontent = ""
81668178 outfjsoncontent = {}
81678179 fp .seek (len (formatspecs ['format_delimiter' ]), 1 )
8168- outfextrasize = int (inheaderdata [28 ], 16 )
8169- outfextrafields = int (inheaderdata [29 ], 16 )
8180+ outfextrasize = int (inheaderdata [30 ], 16 )
8181+ outfextrafields = int (inheaderdata [31 ], 16 )
81708182 extrafieldslist = []
8171- extrastart = 30
8183+ extrastart = 32
81728184 extraend = extrastart + outfextrafields
81738185 outfcs = inheaderdata [- 2 ].lower ()
81748186 outfccs = inheaderdata [- 1 ].lower ()
@@ -8475,14 +8487,16 @@ def ArchiveFileToArray(infile, fmttype="auto", seekstart=0, seekend=0, listonly=
84758487 prefcompression = preheaderdata [14 ]
84768488 prefcsize = int (preheaderdata [15 ], 16 )
84778489 prefseeknextfile = preheaderdata [26 ]
8478- prefjsonsize = int (preheaderdata [27 ], 16 )
8490+ prefjsontype = preheaderdata [27 ]
8491+ prefjsonlen = int (preheaderdata [28 ], 16 )
8492+ prefjsonsize = int (preheaderdata [29 ], 16 )
84798493 prefjoutfprejsoncontent = fp .read (prefjsonsize ).decode ("UTF-8" )
84808494 if (prefjsonsize <= 0 ):
8481- prefjoutfprejsoncontent = ""
8495+ prefjoutfprejsoncontent = "" . encode ()
84828496 fp .seek (len (formatspecs ['format_delimiter' ]), 1 )
8483- prefextrasize = int (preheaderdata [28 ], 16 )
8484- prefextrafields = int (preheaderdata [29 ], 16 )
8485- extrastart = 30
8497+ prefextrasize = int (preheaderdata [30 ], 16 )
8498+ prefextrafields = int (preheaderdata [31 ], 16 )
8499+ extrastart = 32
84868500 extraend = extrastart + prefextrafields
84878501 prefcs = preheaderdata [- 2 ].lower ()
84888502 prenewfcs = preheaderdata [- 1 ].lower ()
@@ -8577,7 +8591,9 @@ def ArchiveFileToArray(infile, fmttype="auto", seekstart=0, seekend=0, listonly=
85778591 outfdev_minor = int (inheaderdata [24 ], 16 )
85788592 outfdev_major = int (inheaderdata [25 ], 16 )
85798593 outfseeknextfile = inheaderdata [26 ]
8580- outfjsonsize = int (inheaderdata [27 ], 16 )
8594+ outfjsontype = inheaderdata [27 ]
8595+ outfjsonlen = int (inheaderdata [28 ], 16 )
8596+ outfjsonsize = int (inheaderdata [29 ], 16 )
85818597 outfjsoncontent = {}
85828598 outfprejsoncontent = fp .read (outfjsonsize ).decode ("UTF-8" )
85838599 if (outfjsonsize > 0 ):
@@ -8593,10 +8609,10 @@ def ArchiveFileToArray(infile, fmttype="auto", seekstart=0, seekend=0, listonly=
85938609 outfprejsoncontent = ""
85948610 outfjsoncontent = {}
85958611 fp .seek (len (formatspecs ['format_delimiter' ]), 1 )
8596- outfextrasize = int (inheaderdata [28 ], 16 )
8597- outfextrafields = int (inheaderdata [29 ], 16 )
8612+ outfextrasize = int (inheaderdata [30 ], 16 )
8613+ outfextrafields = int (inheaderdata [31 ], 16 )
85988614 extrafieldslist = []
8599- extrastart = 30
8615+ extrastart = 32
86008616 extraend = extrastart + outfextrafields
86018617 while (extrastart < extraend ):
86028618 extrafieldslist .append (inheaderdata [extrastart ])
@@ -8680,7 +8696,7 @@ def ArchiveFileToArray(infile, fmttype="auto", seekstart=0, seekend=0, listonly=
86808696 outfcontents .seek (0 , 0 )
86818697 if (not contentasfile ):
86828698 outfcontents = outfcontents .read ()
8683- outlist ['ffilelist' ].append ({'fid' : realidnum , 'fidalt' : fileidnum , 'fheadersize' : outfheadsize , 'fhstart' : outfhstart , 'fhend' : outfhend , 'ftype' : outftype , 'fencoding' : outfencoding , 'fcencoding' : outfcencoding , 'fname' : outfname , 'fbasedir' : outfbasedir , 'flinkname' : outflinkname , 'fsize' : outfsize , 'fatime' : outfatime , 'fmtime' : outfmtime , 'fctime' : outfctime , 'fbtime' : outfbtime , 'fmode' : outfmode , 'fchmode' : outfchmode , 'ftypemod' : outftypemod , 'fwinattributes' : outfwinattributes , 'fcompression' : outfcompression , 'fcsize' : outfcsize , 'fuid' : outfuid , 'funame' : outfuname , 'fgid' : outfgid , 'fgname' : outfgname , 'finode' : outfinode , 'flinkcount' : outflinkcount , 'fdev' : outfdev , 'fminor' : outfdev_minor , 'fmajor' : outfdev_major , 'fseeknextfile' : outfseeknextfile , 'fheaderchecksumtype' : inheaderdata [- 4 ], 'fcontentchecksumtype' : inheaderdata [- 3 ], 'fnumfields' : outfnumfields + 2 , 'frawheader' : inheaderdata , 'fextrafields' : outfextrafields , 'fextrafieldsize' : outfextrasize , 'fextradata' : extrafieldslist , 'fjsondata' : outfjsoncontent , 'fheaderchecksum' : outfcs , 'fcontentchecksum' : outfccs , 'fhascontents' : pyhascontents , 'fcontentstart' : outfcontentstart , 'fcontentend' : outfcontentend , 'fcontentasfile' : contentasfile , 'fcontents' : outfcontents })
8699+ outlist ['ffilelist' ].append ({'fid' : realidnum , 'fidalt' : fileidnum , 'fheadersize' : outfheadsize , 'fhstart' : outfhstart , 'fhend' : outfhend , 'ftype' : outftype , 'fencoding' : outfencoding , 'fcencoding' : outfcencoding , 'fname' : outfname , 'fbasedir' : outfbasedir , 'flinkname' : outflinkname , 'fsize' : outfsize , 'fatime' : outfatime , 'fmtime' : outfmtime , 'fctime' : outfctime , 'fbtime' : outfbtime , 'fmode' : outfmode , 'fchmode' : outfchmode , 'ftypemod' : outftypemod , 'fwinattributes' : outfwinattributes , 'fcompression' : outfcompression , 'fcsize' : outfcsize , 'fuid' : outfuid , 'funame' : outfuname , 'fgid' : outfgid , 'fgname' : outfgname , 'finode' : outfinode , 'flinkcount' : outflinkcount , 'fdev' : outfdev , 'fminor' : outfdev_minor , 'fmajor' : outfdev_major , 'fseeknextfile' : outfseeknextfile , 'fheaderchecksumtype' : inheaderdata [- 4 ], 'fcontentchecksumtype' : inheaderdata [- 3 ], 'fnumfields' : outfnumfields + 2 , 'frawheader' : inheaderdata , 'fextrafields' : outfextrafields , 'fextrafieldsize' : outfextrasize , 'fextradata' : extrafieldslist , 'fjsontype' : outfjsontype , 'fjsonlen' : outfjsonlen , 'fjsonsize' : outfjsonsize , 'fjsondata' : outfjsoncontent , 'fheaderchecksum' : outfcs , 'fcontentchecksum' : outfccs , 'fhascontents' : pyhascontents , 'fcontentstart' : outfcontentstart , 'fcontentend' : outfcontentend , 'fcontentasfile' : contentasfile , 'fcontents' : outfcontents })
86848700 fileidnum = fileidnum + 1
86858701 realidnum = realidnum + 1
86868702 if (returnfp ):
0 commit comments