nydus / heroprotocol

heroprotocol is a Javascript port of Blizzard/heroprotocol for Heroes of the Storm .StormReplay parsing
Other
19 stars 10 forks source link

Linux issue on .get function #17

Closed patonz closed 4 years ago

patonz commented 4 years ago

Hi, im using hots-parse that use this lib. On windows, i have to use the 1.0 version and all works fine, just i need new protocols after each patch from blizzard. On linux, storm-replay give an error on some cpp files and then you are forcing to use the .get function for linux/macos instead of the slow version in pure javascript. Can you just re-check for linux? i'm using ubuntu 19.04 and then i will dockerize all in alpine or debian.

grishrl commented 4 years ago

I would double this; using mac and linux systems causes a high % of errors with files not working and not parsing; I have been able to subvert this and get it working by removing the check for linux and always returning return exports.extractFileJS(file, archive) Can you double check this or remove this ?

jnovack commented 4 years ago

extractFile uses storm-replay and extractFileJS does not.

Is it a storm-extract storm-replay issue? If so, I've archived that years ago because I could not maintain it (read: bitter that Blizzard fucked HoTS and I abandoned the game).

Edit: I'm an idiot, I mixed up my own repos.

jnovack commented 4 years ago

If you can confirm that the latest version of CascLib works with the storm-extract repo, I'll bump the version. Will need a few screenshots.

Edit: I'm an idiot, I mixed up my own repos.

jnovack commented 4 years ago

@patonz I've done some cursory updates to storm-replay, and have verified there are version dependencies due to deprecated functions.

Please see the storm-replay README for more information.

If you are familiar with docker and the microservices concept, you can docker the storm-replay extraction function in a node10 environment while ensuring your production environment of processing the extracted files is current. storm-replay was designed for being a microservice.

Updates were made to StormLib after v9.21 which break storm-replay. If files are not working and parsing for storm-replay, my guess is that they use a newer version of the library which requires a new version of StormLib, which, unfortunately, I have neither the time nor effort to correct (I haven't had the game installed since 2018-12). However, I have unarchived the repository if you are able to solve it.

On windows, i have to use the 1.0 version and all works fine, just i need new protocols after each patch from blizzard.

That is correct. That is by design. If you get kicked back an error that you cannot open an archive, you can spawn off postinstall.js for an update, or do it as a scheduled task. It is out of scope of this library to do it automatically and should be the responsibility of the upstream application using it.

Are there still problems that need to be addressed by this Issue?

grishrl commented 4 years ago

it looks like the most recent PR has fixed the issue; thanks.