1
0
Fork 0
mirror of synced 2024-05-18 19:32:24 +12:00

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

2
package-lock.json generated
View file

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