inherit
168679
0
Nov 18, 2012 17:03:07 GMT -8
Virgil Sovereign
Latet anguis in herba.
686
July 2011
syonidv
|
Post by Virgil Sovereign on Mar 22, 2016 4:12:37 GMT -8
Chris : An idle thought: Is there even the remotest possibility of getting a command line tool for compiling a manifest (plus images) into a .pbp file? It wouldn't have to be pretty. Just something to cut out the need for the build UI if desired. I ask for several reasons: - such a tool would obviate the need for any number of esoteric and not-so-esoteric features in the build UI (such as sortable tabs, which was already mentioned)
- the tool would be a considerable help in streamlining plugin development. For example, I'm finding that many of my plugins use a common code base and that any changes I make to the base have to be manually propagated to every plugin. I also have plugins like VDice and CondX that come in multiple pre-configured "flavours" that need to be redundantly updated every time I make a change. A CL tool would make code maintenance much easier.
- it's conceivable that you already have such a tool (or at least code that could be turned into one in short order)
Thoughts on this becoming a reality? Another possibility: Would you (Proboards) consider publishing the spec for .pbp files? I'll happily write my own tool for building a .pbp from a JSON source and make it available to other developers. Thanks for your input.
|
|
inherit
201984
0
Sept 11, 2023 1:23:07 GMT -8
P̌̓aͧś̀t̀u͒le͆o͂2̀3̃̓
Using My Talents Elsewhere
3,314
November 2013
pastuleo23
|
Post by P̌̓aͧś̀t̀u͒le͆o͂2̀3̃̓ on Mar 22, 2016 14:13:31 GMT -8
That's very true. You could probably write something in a C language within a day or two.
|
|
inherit
Official Code Helper
65613
0
1
Oct 22, 2024 1:56:19 GMT -8
Chris
"'Oops' is the sound we make when we improve"
9,018
December 2005
horace
RedBassett's Mini-Profile
|
Post by Chris on Mar 22, 2016 18:33:28 GMT -8
Chris : An idle thought: Is there even the remotest possibility of getting a command line tool for compiling a manifest (plus images) into a .pbp file? It wouldn't have to be pretty. Just something to cut out the need for the build UI if desired. I ask for several reasons: - such a tool would obviate the need for any number of esoteric and not-so-esoteric features in the build UI (such as sortable tabs, which was already mentioned)
- the tool would be a considerable help in streamlining plugin development. For example, I'm finding that many of my plugins use a common code base and that any changes I make to the base have to be manually propagated to every plugin. I also have plugins like VDice and CondX that come in multiple pre-configured "flavours" that need to be redundantly updated every time I make a change. A CL tool would make code maintenance much easier.
- it's conceivable that you already have such a tool (or at least code that could be turned into one in short order)
Thoughts on this becoming a reality? Another possibility: Would you (Proboards) consider publishing the spec for .pbp files? I'll happily write my own tool for building a .pbp from a JSON source and make it available to other developers. Thanks for your input. Virgil Sovereign , I thought about building my own personal plugin builder back in the V5 beta days but never got around to it as is the case with most of my pinned tasks nowadays. I will need to consult the higher-ups however before I divulge info that might be detrimental to where Proboards may want to take this. I have nothing but a intuition here, but I suspect the specs will be getting a once-over to harden it with the upcoming "paid plugins" feature which would make any labor put into an obsolete spec fruitless. Stay tuned for further developments...
|
|
inherit
Official Code Helper
65613
0
1
Oct 22, 2024 1:56:19 GMT -8
Chris
"'Oops' is the sound we make when we improve"
9,018
December 2005
horace
RedBassett's Mini-Profile
|
Post by Chris on Mar 26, 2016 17:56:04 GMT -8
Virgil Sovereign , as I suspected, the specs will be changed with the introduction of paid plugins. This means the current spec might be retired or it could simply mean both specs could coexist with PBP1 still used for free/legacy plugins and PBP2 for paid but any effort put into PBP1 would be gambling on the latter scenario. If you still wish to pursue the idea then I can tell you that a *.pbp file is simply a *.gz file with the addition of a 6 byte header of "PBP1>>". Remove that header then any app that can understand gzip (using deflate) should be able to open it. It will of course be a JSON structure which should be self-documenting once you've got it uncompressed.
|
|
inherit
201984
0
Sept 11, 2023 1:23:07 GMT -8
P̌̓aͧś̀t̀u͒le͆o͂2̀3̃̓
Using My Talents Elsewhere
3,314
November 2013
pastuleo23
|
Post by P̌̓aͧś̀t̀u͒le͆o͂2̀3̃̓ on Mar 27, 2016 2:43:47 GMT -8
ChrisThats pretty simple. You sure you want this information out there? I guess its technically legacy anyway....
|
|
inherit
168679
0
Nov 18, 2012 17:03:07 GMT -8
Virgil Sovereign
Latet anguis in herba.
686
July 2011
syonidv
|
Post by Virgil Sovereign on Mar 27, 2016 3:51:26 GMT -8
Virgil Sovereign , as I suspected, the specs will be changed with the introduction of paid plugins. This means the current spec might be retired or it could simply mean both specs could coexist with PBP1 still used for free/legacy plugins and PBP2 for paid but any effort put into PBP1 would be gambling on the latter scenario. If you still wish to pursue the idea then I can tell you that a *.pbp file is simply a *.gz file with the addition of a 6 byte header of "PBP1>>". Remove that header then any app that can understand gzip (using deflate) should be able to open it. It will of course be a JSON structure which should be self-documenting once you've got it uncompressed. Ah. Easy enough to handle. Many thanks.
|
|
inherit
217348
0
Jul 27, 2022 7:26:44 GMT -8
Lynx
5,849
January 2015
msg
|
Post by Lynx on Mar 27, 2016 11:36:21 GMT -8
** whistles and walks in the other direction, as this is WAY over my head **
|
|
inherit
226544
0
Oct 5, 2018 10:29:39 GMT -8
Ulises
4,881
November 2015
umacklin
Ulises Weirdo
|
Post by Ulises on Apr 3, 2016 15:31:32 GMT -8
Chris Quick question as I'm super curious: how were you able to figure out that .pbp files were essentially .gz files? Actually, thinking about it a little more, it makes sense.
|
|
inherit
2671
0
May 14, 2013 14:40:03 GMT -8
Peter
🐺
10,615
February 2002
peter3
|
Post by Peter on Apr 3, 2016 16:24:49 GMT -8
Ulises, It's all about that magic number.
|
|
inherit
Official Code Helper
65613
0
1
Oct 22, 2024 1:56:19 GMT -8
Chris
"'Oops' is the sound we make when we improve"
9,018
December 2005
horace
RedBassett's Mini-Profile
|
Post by Chris on Apr 3, 2016 18:19:20 GMT -8
Chris Quick question as I'm super curious: how were you able to figure out that .pbp files were essentially .gz files? Actually, thinking about it a little more, it makes sense. Yeah, once you reason it out then it makes sense plus I once had a weird fascination with hex editors and studying file type headers. It might also be that Pat may have mentioned it in passing during an alpha introduction.
|
|
inherit
226544
0
Oct 5, 2018 10:29:39 GMT -8
Ulises
4,881
November 2015
umacklin
Ulises Weirdo
|
Post by Ulises on Apr 3, 2016 19:49:29 GMT -8
Yeah, I'm still a student in this stuff and this isn't one of the things they teach us. Or maybe they will in later classes. I still think this idea is cool even if it may not come to fruition.
|
|
inherit
2671
0
May 14, 2013 14:40:03 GMT -8
Peter
🐺
10,615
February 2002
peter3
|
Post by Peter on Apr 4, 2016 1:10:34 GMT -8
Ulises , Not sure if you understood my previous post, maybe I should have gone into more detail. A magic number (or you can call it a signature), is basically a small amount of data that can be used to identify the type of file. I went though a phase of using hex editors, and because of using them years ago, I learned about these magic numbers in the header of files. There are lists out there that tell you which magic number (aka signature) belongs to which file extension. Magic number (https://en.wikipedia.org/wiki/Gzip)... JSON for plugin...
|
|
Former Member
inherit
guest@proboards.com
225992
0
Nov 27, 2024 12:45:00 GMT -8
Former Member
0
January 1970
Former Member
|
Post by Former Member on Oct 9, 2016 9:31:17 GMT -8
I'm working on a node CLI tool for this
The file header is actually 16bytes long as proboards does not use the checksum or additional fields
Header
{ signature // Uint32 - 4bytes unknown // Uint16 - 2bytes gzipsignature // uint16 - 2bytes gzipcompression // int8 - 1byte gzipflags // int8 - 1byte gziplastmodified // int32 - 4bytes gzipcompressionflags // int8 - 1byte gzipoperatingsys // int8 - 1byte
I know proboards does not use checksum or additional fields by checking the flags
gzipflags
{ FTEXT : gzipflags >> 0x01 ? 1 : 0, // treat as text instead of binary FHCRC : gzipflags >> 0x02 ? 1 : 0, // checksum flag FEXTRA: gzipflags >> 0x04 ? 1 : 0, // extra fields flag FNAME : gzipflags >> 0x08 ? 1 : 0, // original name FCOMMENT: gzipflags >> 0x10 ? 1 : 0, // contains comments RESERVED1: gzipflags >> 0x20 ? 1 : 0, // must be set to zero RESERVED2: gzipflags >> 0x40 ? 1 : 0, // must be set to zero RESERVED3: gzipflags >> 0x80 ? 1 : 0, // must be set to zero
gzipcompressionflags
{ slow : gzipcompressionflags >> 0x02 ? 1 : 0 fast : gzipcompressionflags >> 0x04 ? 1 : 0 }
The file contains footer, where the checksum is used if the flag is set, the last 8bytes Footer { checksum : 4bytes uncompressedDataSize : 4bytes }
|
|
inherit
2671
0
May 14, 2013 14:40:03 GMT -8
Peter
🐺
10,615
February 2002
peter3
|
Post by Peter on Oct 10, 2016 1:30:41 GMT -8
Peter The file header is actually 16bytes long Not sure why you are tagging me pointing that out. My post was about magic numbers.
|
|
Former Member
inherit
guest@proboards.com
225992
0
Nov 27, 2024 12:45:00 GMT -8
Former Member
0
January 1970
Former Member
|
Post by Former Member on Oct 10, 2016 4:36:50 GMT -8
You showed the first few bytes then showed the json data I was just pointing it out for those interested that there was more involved.
untagged you.
|
|