xivlogs / nari

A Python library to parse FFXIV network event data
https://xivlogs.github.io/nari
MIT License
13 stars 7 forks source link

xivmon xml log reader #30

Open ayyaruq opened 3 years ago

ayyaruq commented 3 years ago

A reader to parse ffxivmon XML packet dumps for testing unknown structs or additional opcodes more easily.

lunarrize commented 3 years ago

native python can parse xml with stdlib modules

ayyaruq commented 3 years ago

Going through an example XML dump, there's no way to bind opcodes. Gonna have a chat with @goaaats if we can either get XEIF exports into xivmon, or I guess come up with a way to link a xivmon XML capture to a specific set of opcodes.

goaaats commented 3 years ago

Hey, if you mean linking OpCodes to common names from e.g. Sapphire, every xivmon log has the tag index of the Sapphire repo at the time the log was captured - it downloads the header files from that commit and parses them to display information which allows for easy retargeting of logs.

Obviously that's unfeasible for you to implement, and since Sapphire isn't actively maintained at the moment, maybe I need to come up with another backend for that information at some point and put it in the log itself.

nonowazu commented 2 years ago

Thinking more about this, the default python xml reader is extremely slow and I'd probably recommend lxml.

However, that breaks my contract I made with the devil myself to only use stdlib for nari. So that would mean that we'd build a second package (perhaps nari-xivmon) which just requires nari. Perhaps even do a separate repo like nari-readers where we just bundle all of them and push them up to pypi as separate packages?

Alternatively, we could just write the code generically and check for lxml - if it exists, we'll use it in the parser; if not, it'll fallback to slow python parsing?