Commit graph

139 commits

Author SHA1 Message Date
ChillerDragon 781248ae79 Support packing control packets 2023-04-30 13:08:33 +02:00
ChillerDragon 390e470f3b Add imports and result to example 2023-04-29 09:31:35 +02:00
ChillerDragon 8d639b57b8 Note about defaults (closed #8) 2023-04-29 09:25:47 +02:00
ChillerDragon 425506d2a3 Implement packing full tw packets (no ctrl messages yet) 2023-04-29 09:07:06 +02:00
ChillerDragon 06b751940f Fix chunk header packing 2023-04-23 11:46:25 +02:00
ChillerDragon f0fd825879 Start working on packet and chunk header packing 2023-04-16 19:17:05 +02:00
ChillerDragon 18dd35f4fa Create chunk header instance for every message 2023-04-16 16:51:28 +02:00
ChillerDragon 6a351073d3 Include ids in message classes 2023-04-16 16:06:23 +02:00
ChillerDragon 65cac66724 Add more types to test
This is highlighting the problem of
https://gitlab.com/teeworlds-network/twnet_parser/-/issues/1

Every lib user that wants to use types needs to do a cast
to access the properties of messages
2023-04-16 11:44:09 +02:00
ChillerDragon 4f540fead1 Add some types to packet test 2023-04-16 11:39:30 +02:00
ChillerDragon 1fd099c3de Intentionally keep enums ints
https://gitlab.com/teeworlds-network/twnet_parser/-/issues/7
2023-04-16 11:25:31 +02:00
ChillerDragon 67c54c4be4 Use python enums for enums
I played a bit with getting the text instead
of the magic number in the string representation
but everything I tried got a bit ugly
2023-04-16 10:53:29 +02:00
ChillerDragon e4ab0a7791 Make 0 member msgs look nicer 2023-04-16 09:40:12 +02:00
ChillerDragon 90b43608b9 Use named default for enums and move enum file 2023-04-16 09:28:36 +02:00
ChillerDragon 58051469f2 Start using classes in gen script to avoid globals 2023-04-16 08:52:03 +02:00
ChillerDragon 1767d05f4e Generate enums 2023-04-16 08:43:37 +02:00
ChillerDragon 8b0cce28be Expect the sha256 field to be 32 bytes 2023-04-16 08:15:55 +02:00
ChillerDragon e3411f7f98 Add pcap printer example 2023-04-09 17:02:35 +02:00
ChillerDragon a6ecf91e52 Release 0.4.0 2023-04-09 16:27:36 +02:00
ChillerDragon b9a719ece9 Add pack() method to PacketHeader class
Also removed unused PacketHeader size field
2023-04-09 16:22:35 +02:00
ChillerDragon 3b93a6bba2 Packing python bools as tw net bools just works
python handles bools more like the ints 0 and 1
and those are exactly the values the
teeworlds network protocol expects

I can totally see this breaking in python4
or a new mypy version

maybe one day a ``get_bool()`` could make sense
also for readability

but for now this should be stable as long as the
tests pass
2023-04-09 12:14:13 +02:00
ChillerDragon f1d562f25f Add snap single test 2023-04-09 12:03:16 +02:00
ChillerDragon 2b28e755bc Add support for the data size field 2023-04-09 11:44:43 +02:00
ChillerDragon 1ab907a5ae Delete .gitkeep 2023-04-08 18:38:41 +02:00
ChillerDragon 7dc9e6de14 Add 48 chunk rcon server response test 2023-04-08 18:30:46 +02:00
ChillerDragon 7a8dc63aee Document message parsing progress 2023-04-08 15:27:52 +02:00
ChillerDragon 2c22d3bd39 Finish skin change tests 2023-04-08 15:27:12 +02:00
ChillerDragon 559f63d033 Generate messages with array fields
This commit was fully automated by

		./scripts/generate_messages.py
2023-04-08 14:25:58 +02:00
ChillerDragon 822074ea47 Add support for generating array chunk fields 2023-04-08 14:24:44 +02:00
ChillerDragon 7e7f419597 More skin change tests 2023-04-07 18:14:41 +02:00
ChillerDragon e24b3959ce Start working on skin change test 2023-04-07 16:57:04 +02:00
ChillerDragon 9615392156 Fix parsing messages with ids higher than 31
See my thought process here
https://github.com/ChillerDragon/teeworlds-protocol/pull/15
2023-04-07 16:10:56 +02:00
ChillerDragon bd4353538a Revert optionals cc generation test 2023-04-07 16:09:27 +02:00
ChillerDragon df3448d001 Add failing call vote packet test 2023-04-07 14:31:04 +02:00
ChillerDragon 7dfaeda45f Apply sanitize string cc to all messages that need it 2023-04-07 14:27:25 +02:00
ChillerDragon 3df2a7fb12 Make the errors of run_tests.sh more intense
I did run ./scripts/run_tests.sh and thought they passed lol
pylint is not using colored output so in the green wall
of tests its easy to over see.

This should not happen again after this change.
2023-04-07 13:08:56 +02:00
ChillerDragon 5fc964e4ed Fix pylint error 2023-04-07 13:08:44 +02:00
ChillerDragon 2346e271ac Note that this will never keep track of vital msgs for you 2023-04-07 12:54:18 +02:00
ChillerDragon a9ba5bd703 Sanitize string unpack by default the same way tw does it
This sadly probably comes with some hefty performance implications
2023-04-07 12:46:50 +02:00
ChillerDragon 1a864d903c Add test for client side token packing 2023-04-07 10:45:35 +02:00
ChillerDragon 640dca32ad Advertise my favorite command that ensured pipelines passing so far 2023-04-07 10:38:04 +02:00
ChillerDragon 61610e46d8 Release 0.3.3 2023-04-07 10:32:45 +02:00
ChillerDragon 1300c45a0f Finally found a working recurse 2023-04-07 10:22:47 +02:00
ChillerDragon fc3da234c1 Manually list all folders (not so nice imo) 2023-04-07 10:15:30 +02:00
ChillerDragon 8559dcbfeb Also revert readme back to setup.cfg 2023-04-07 09:40:32 +02:00
ChillerDragon dd304aad20 Ensure installing as package works in CI 2023-04-07 09:39:38 +02:00
ChillerDragon fa96ed570d Release 0.3.2 2023-04-07 09:28:36 +02:00
ChillerDragon a11a3cbb42 Switch back to setup.cfg in release script 2023-04-07 09:27:49 +02:00
ChillerDragon 8d0725d527 Back to find: (worked locally lets see) 2023-04-07 09:25:14 +02:00
ChillerDragon 434e6a9457 Go back to old build setup to fix import error 2023-04-07 09:06:13 +02:00