Git Product home page Git Product logo

r20exporter's Introduction

This extension allows you to export a Roll 20 campaign and all of its assets into a ZIP file for backup/archiving purposes.

DISCLAIMER: The use of this tool is meant for backup and archiving purposes of your own campaigns. It is only meant and should only be used on campaigns with content that you own.
Even if using it only on your own previously uploaded content, the use of this tool may still be against the Roll 20 Marketplace Asset End User License Agreement and the Roll 20 EULA or Terms of Service.
The use of this extension may be considered grounds for account suspension or termination. Use at your own risks.

R20Exporter

This extension is only available for Chrome, as it uses the local storage API to store the ZIP file, which can have many GBs of data in it. Firefox unfortunately does not support that API, so it cannot work for it.

To install, please visit the Chrome Webstore

To export your campaign go to the settings tab in the Roll20 page (the gear icon on the far right of the sidebar), click to expand the "R20Exporter" section, and you should see a button "Export Campaign to ZIP". Simply click on it, then wait until the ZIP file is generated and downloaded.

While generating the ZIP file, do make sure you have the campaign tab focused in chrome (separate it in its own window if needed), otherwise the download speed of the zip will drop to very very slow transfer speeds since the javascript that generates the zip on the fly will be running as a low priority background process.

The dialog that opens will show you the various steps the script is undertaking and you can click the Log button to see a more detailed log of what is happening. That dialog window will also prevent you from messing around with the campaign. It is best to let the script do its thing unhindered and to not open another campaign in another window. Once the export process is complete, that window will close on its own and the ZIP file will be downloaded automatically.

To report any issues, please go to the GitHub issue tracker.

Demo

Here's a little demo to show you how it works (note that this may not reflect the latest version of the tool) :

Demo

License

This extension was written by Youness Alaoui and is licensed under the LGPL open source license.

See LICENSE.LGPL.md for more information.

The icon for the extension is built using icons made by Delapouite from GameIcons.net

Further work

This tool was initially released as a patrons only perk on my Patreon and now that it is no longer in beta, it's been made available to everyone.

These are other tools that I am working on and that might be useful to other D&D players.

  • Beyond20 : A Browser extension to integrate D&D Beyond character sheets into Roll 20 or Foundry VTT
  • R20Converter : A script to convert a Roll20 campaign (exporter with this tool) into a pre-configured world for Foundry VTT (Patreon only)
  • FVTT Modules : Various modules for Foundry VTT that improve Quality of Life or add some familiar features that Roll 20 had for those who don't like changing their habits.

If you'd like to support me in the work I'm doing, you can subscribe to my Patreon or use my Paypal for a one-time contribution.

Thanks!

r20exporter's People

Contributors

kakaroto avatar kyleady avatar lukeyeager avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

r20exporter's Issues

Extension not visible on roll20

Downloaded the extension on my chrome, but after accessing in my Roll20 game the ability to export in ZIP is not present:
image

Exporter gets stuck at jukebox step

export stuck
Getting stuck on the latest version. Error couldn't download jukebox audio from url and it just freezes forever on this step with no way to download the zip.

Same as issue #16

Stuck loading at "Downloading Journal Resources (3/10)"

I've recently just downloaded the program, but after getting players and macros and such, it keeps stopping at "Stuck loading at "Downloading Journal Resources (3/10)" regardless of the amount of tabs I have open in chrome. Please help
image

Getting stuck at "Saving Characters"

Not sure if I'm really getting anywhere with the .zip export feature. I seem to be getting stuck at the saving characters part. I've turned off all of my extensions that would normally interact with Roll20, I've refreshed the page and even closed the browser completely a couple times causing it to get me to start over. I've tried looking through this support page for anything like what I've got going on, but anything close seems to have been resolved ages ago. Maybe this is something new, or maybe I'm missing something. (I'm not very clever with these kind of things, just trying to do my best to follow along with the directions where I can)

image


image

WebM files export as .png files

Downloading a campaign as a .zip seems to export all registered .webm files as .png files. The files don't seem to be converted completely, as renaming the .png s back to .webm causes them to work properly.

Export Campaign button has disappeared

image

The Export campaign button has disappeared from the My settings menu meaning I can longer export the campaign. Has this moved or is there an issue with it?

Chat archive format change

The chat archive format has changed, now it's using pages, so downloading of chat archive needs to be done differently.

Malformed lists in character bios

In a character's bio HTML, lists appear as a mix of roman and italic font with the odd asterisk at the end. Without trawling your code, my guess is that list bullets are converted to an asterisk *, which is then parsed as markdown to produce HTML tags <em>.

For example,

- abc def
- lmn opq
- uvw xyz

is converted to

<em> abc def </em> lmn opq * uvw xyz

(plus other <p> tags and whatnot). I should specify that this doesn't happen with all lists, but I can't confirm what exact stylistic differences cause it.

This is generally a bit messy to view outside R20, so if there's an easy fix it'd be appreciated!

Conflict with VTTES

Seems jquery isn't available at the time of R20Exporter being loaded when VTTES extension is enabled.

Error

I'm getting the following error when trying to convert a R20 campaign.

Error converting campaign with R20Converter v0.10.5:
Traceback (most recent call last):
File "src\GUI.py", line 183, in startConversion
File "src\R20Converter.py", line 154, in convert
File "C:\Users\kakaroto\AppData\Local\Programs\Python\Python38\lib\os.py", line 211, in makedirs
File "C:\Users\kakaroto\AppData\Local\Programs\Python\Python38\lib\os.py", line 211, in makedirs
File "C:\Users\kakaroto\AppData\Local\Programs\Python\Python38\lib\os.py", line 221, in makedirs
PermissionError: [WinError 5] Access is denied: 'C:/Program Files/Foundry Virtual Tabletop/Data'

Please contact the author with the log of the error from the console window

add timeout for individual files/allow user to force skip

Playlist music sometimes never downloads, so add a timeout for it.
Same with someone having character sheet with actual 0 attributes.
A timeout of maybe 30 seconds if no activity, prompt the user to override the wait and continue.

Character Files No Longer Have Detailed Data

I installed the extension a month or so ago and wrote a Perl script to extract the data from the character sheets in the downloaded .json file to display them in HTML format. It worked fine until today. It looks like the character details (skills, features, etc.) are no longer included in the downloaded .json when I export the campaign to .json file. The file I downloaded today is about 1.5M, and the previous file for the campaign was about 16M.

If I Export Campaign to a zip file instead the same problem occurs with the character.json files in the folders created for each character. In previous downloads they were about 60K, and now they're only about 4K.

Since the extension is unchanged, my guess is Roll20 changed something on their end that caused this to happen.

Anything you can do would be greatly appreciated.

Converting recent Roll20 module consistently fails with error log?

Hey, stupid question and I really REALLY hope this is the right place to ask it -I'm terribly sorry if not. I tried converting a bought module from Roll20 recently after subscribing to your Patreon, but the conversion consistently fails, both with the JSON version and the .zip. It just gives me the following error log:

Error converting campaign :
Traceback (most recent call last):
File "src\GUI.py", line 183, in startConversion
File "src\R20Converter.py", line 142, in convert
File "src\entities\scenes.py", line 20, in init
File "src\entities\scenes.py", line 31, in genEntities
File "src\entities\scenes.py", line 31, in
File "src\entities\scenes.py", line 286, in init
TypeError: '>' not supported between instances of 'str' and 'int'

Please contact the author with the log of the error from the console window

Did I fuck up somehow or does it have to do with the module being a recent release?

Pdf download error

No matter what i try it says "Error creating zipfile writer: NomodificationAllowed error: an attempt was made to write a file or directory which cannot be modified due to the state of an underlying file system

No Export Button Or Manual Export

The extension is installed but no button appears under settings. I looked at an old issue and saw a command for initiating the export manually but that resulted in an error that the exporter was undefined. Please advise.

image

QuotaExceededError: ZIP creation operation fails if ZIP exceeds ~300MB

Every time I attempt to convert my DotMM campagin (roughly 1.86GB of data) the zip process gets to ~30% and then I'm given an error that the file is too big. In your demo you are converting a CoS campaign roughly the same size and it behaves as expected. I had to strip the campaign down to just its maps and dynamic lighting to get it below 300MB and this is just below my expectations for this paid resource. Couldn't find anything on this issue either so here we are. HALP! :)

EDIT:
Adding a screenshot to show the issue ->
zipExceeded

Getting hit with Cloudflare's 1015 Error

I have a massive r20 game which is over 100 maps and dozens of audio tracks, NPC sheets, etc.

The exporter seems to be getting hit by a DDOS security prevention warning around map 75 (the first set of operations seems to be maps.)

Is there a way we can slow down the exporter process to limit it from getting flagged to a DDOS tool? It banned me from my roll20 account for an hour ๐Ÿคฃ

Thanks!

[BUG] Zip Writer Error - NoModificationAllowedError

image

Just bought this module so I could export and convert to Foundry and upload on the Forge, created a fresh campaign, immediately went to export and it provided the above error. JSON exporter works fine though. I've tried suggested fixes for similar issues that have been resolved in this Git, but nothing helps. I have tried uninstalling the extension, clearing data/resetting site settings for Roll20, etc.

It should be noted that I use Chrome for my main browser and that I have used this extension in the past with great success, but not on this computer. I have not tried yet tried to replicate this issue on other computers.

Fix exporting Jumpgate game

Looks like Jumpgate uses a different format for drawings, the data.paths of a page. The JSON.parse of the path field will crash because it will be an empty string. We should instead JSON.parse the points field.

Quotaexceedederror on export

Hello I have a problem I hope you can help me with - when I try to export my campaign from roll20 (850 mb), i get a message saying quotaexceedederror when export is generating the .zip file:
"Error creating zip file writer: quotaexceedederror: The operation failed because it would cause the application to exceed its storage quota" Any way to fix this?
I appreciate any help!

Add options to decide what to export

Could save on space/download if you can specify what it is you want to export, so you could skip jukebox or skip rollable tables/decks or whatever.

Subtle errors everywhere

I've just exported a large Roll20 campaign and it initially appeared to go really well. But when doing some tweaking in Foundry I began to notice multiple small errors throughout NPC stat blocks.

Most of the obvious stuff (HP, AC etc.) was all correct, but things like attack modifiers, or DC save values would often be wrong. And to make matter worse not all NPCs had these issues, but the more complex the NPC/stat block was the more likely they were to have them.

So far I've noticed two things that are ALWAYS wrong.

  1. ALL multiattack actions have the following description (and has to be replaced with the multiattack text appropriate to the NPC)

"At 11th level, you gain one of the following features of your choice.

Volley

Whirlwind Attack

You can drag your choice from the above onto your character sheet and it will automatically update."

  1. ALL saving throw DC values as part of NPC attack actions are ALWAYS wrong. Interestingly, if you go into the details for the attack and set the DC value to 'flat' it immediately populated the DC value field with the correct value. Which means it's getting the correct value from somewhere, but not applying it during the original export.

Other, occasional, errors I've noticed are incorrect attack modifiers. What's especially bad about this is the attack modifier is correct in the chat card text description, but when/if you expand the die roll on the card it's using the wrong value. Which means I've had to roll every attack value, and then expand the die roll to check the attack modifier for ALL my NPCs!! Just to be sure.

There's also, very occasionally, an extra attack line on an NPC's sheet, that doesn't have a name/description, but will roll an attack without any damage roll. It's so rare I haven't noticed if there's anything common about when they appear.

I haven't even looked at spells yet, I'm too scared!

Mike

Update character sheet versions

character sheets can have different versions. Would need to make sure the template is OGL, and then iterate on all sheets to force an update to the latest version (2.7 at this time).

Exporting to a ZIP file gets stuck at "Saving Journal handouts (5/10) 2 operations in progress.

Hello! I am having a small issue, when exporting to a ZIP file it seems to get stuck at "Saving Journal handouts (5/10) 2 operations in progress." I am using Chrome and I have tried restarting the export, disabling all other extensions, clearing my cache and downloads, and clearing space on my C: drive. When I look at the log I see that there 4 separate logs reading "Can't find handout with ID: (4 separate ID strings for each one it cannot find)." Any tips on how to fix this? If I knew how to find handouts off of the IDs provided I would just manually export them and then delete them, but unfortunately I do not know how. Any help would be much appreciated! Thank you.

No Log File

I ran the R20Exporter on a campaign of mine that used no marketplace assets and only assets I uploaded. However, I ran into a console warning stating that a resource has become unavailable multiple times. There is no log file allowing me to search out / investigate what data might be corrupted or missing in the final ZIP file.

A log file would be ideal to see what is missing. However, if there are any suggestions for how to handle the missing data please let me know.

Generation of zip file failed

The generation of the zip file failed due to low space on drive, and not being able to select a location with space.
I am assuming, it is using C drive as default somewhere. Small SSD on C, and storage on D.
Is there an option to specify location so this will finish?

exporter freezes on downloading chat archive, characters and handout assets

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?

Zip Download becoming Invalid?

The folder did end up being over 3 GB, but I don't know if that is a serious issue. It seemed like my PC downloaded it without issue after around 5-10 minutes downloading.
Trying to get files I can upload to Obsidian.
image

downloadResource() gets overwhelmed

R20Exporter sends out a flurry of requests to Roll20 on each step. If the campaign is large enough (as in my case) then network errors will start to pile up. The function downloadResource() will give up after the first network error, leading to a large number of missing blobs in the final ZIP file.

I solved this issue by adding in an exponential backoff to downloadResource(). However, this exponential backoff does not occur when receiving 404 Not Found or 403 Forbidden. I tested this out on an old campaign that had a large number of images that were added through the Roll20 search and Roll20 marketplace. The lack of retires when being hit with 403/404 kept the time to ZIP unaffected.

My modifications for adding the exponential backoff to v0.7 can be found here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.