1
0
Fork 0

fix: Escape JSON output on command failure so the user can run the command manually

This commit is contained in:
Cristian 2020-09-04 10:23:41 -05:00
parent b9dced5e60
commit bd3c824d45
3 changed files with 6 additions and 2 deletions

1
.gitignore vendored
View file

@ -10,6 +10,7 @@ venv/
build/ build/
dist/ dist/
node_modules/
data/ data/
output/ output/

View file

@ -42,10 +42,11 @@ def save_singlefile(link: Link, out_dir: Optional[str]=None, timeout: int=TIMEOU
browser_args = chrome_args(TIMEOUT=0) browser_args = chrome_args(TIMEOUT=0)
# SingleFile CLI Docs: https://github.com/gildas-lormeau/SingleFile/tree/master/cli # SingleFile CLI Docs: https://github.com/gildas-lormeau/SingleFile/tree/master/cli
browser_args = '--browser-args={}'.format(json.dumps(browser_args[1:]))
cmd = [ cmd = [
DEPENDENCIES['SINGLEFILE_BINARY']['path'], DEPENDENCIES['SINGLEFILE_BINARY']['path'],
'--browser-executable-path={}'.format(CHROME_BINARY), '--browser-executable-path={}'.format(CHROME_BINARY),
'--browser-args="{}"'.format(json.dumps(browser_args[1:])), browser_args,
link.url, link.url,
output output
] ]
@ -73,6 +74,8 @@ def save_singlefile(link: Link, out_dir: Optional[str]=None, timeout: int=TIMEOU
chmod_file(output) chmod_file(output)
except (Exception, OSError) as err: except (Exception, OSError) as err:
status = 'failed' status = 'failed'
# TODO: Make this prettier. This is necessary to run the command (escape JSON internal quotes).
cmd[2] = browser_args.replace('"', "\\\"")
output = err output = err
finally: finally:
timer.end() timer.end()

2
package-lock.json generated
View file

@ -1,6 +1,6 @@
{ {
"name": "archivebox", "name": "archivebox",
"version": "0.4.19", "version": "0.4.21",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {