kakaroto / R20Exporter

Script to export Roll 20 campaign into a zip file.
54 stars 14 forks source link

exporter freezes on downloading chat archive, characters and handout assets #21

Closed benkenobiismydad closed 2 years ago

benkenobiismydad commented 3 years ago

this freezes each time i attempt it, and i have tried 50 times. i have removed and added the extension again and i have added kyleady one manually (i think, well it appears as a separate extension) Please note other campaigns I own have been exported without issue.

However i'm no techie, so bear with me.

if i look in the browser extensions it states : Uncaught SyntaxError: Identifier 'R20Exporter' has already been declared

if i look in the inspect elements/console it states: DevTools failed to load SourceMap: Could not load content for https://app.roll20.net/js/d20/underscore-min.map: Fetch through target failed: Target not supported; Fallback: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

any help would be good?

kiloforce commented 2 years ago

I believe this occurs if you are not a DM of the campaign you are trying to export. Would be really nice if R20Exporter would just export as much as it has access to, and skip the things it does not have access to...

kakaroto commented 2 years ago

I believe this occurs if you are not a DM of the campaign you are trying to export. Would be really nice if R20Exporter would just export as much as it has access to, and skip the things it does not have access to...

I have no plans on having it support exporting campaigns in which you're not the DM. This remains a tool for DMs to backup their own data for archival purposes.

kiloforce commented 2 years ago

Understood.

But, turns out it is a fairly simple bug to workaround. The "callback" doesn't happen on parseCharacter() and parseHandout(), when not the GM. So just disabling the newPendingOperation() for those two allows the download to continue for what it can download.

kiloforce commented 2 years ago

For example, a modified version of the code that disables the parseCharacter()/parseHandout() for non GM use:

https://github.com/kiloforce/R20ExporterNonGM

https://github.com/kiloforce/R20ExporterNonGM/releases/tag/non-gm-0.7

This is just proof of concept. A more streamlined option would be to either have the newPendingOperation() timeout, or detect state and not use the callback.