add option to disable QR
This commit is contained in:
parent
53b78767f9
commit
66215e2647
|
@ -8,6 +8,9 @@ token = 5018dd65-9abd-4a62-8896-80f34ac66150
|
||||||
# wb_sign_token = 27de6ad7-cee2-4fe8-84d4-c7eea9c969c8
|
# wb_sign_token = 27de6ad7-cee2-4fe8-84d4-c7eea9c969c8
|
||||||
# url_wallet = http://localhost/webhook/sign/
|
# url_wallet = http://localhost/webhook/sign/
|
||||||
|
|
||||||
|
# useful for development
|
||||||
|
# disable_qr = False
|
||||||
|
|
||||||
# path = /path/to/save
|
# path = /path/to/save
|
||||||
# device = your_device_name
|
# device = your_device_name
|
||||||
# # erase = basic
|
# # erase = basic
|
||||||
|
|
|
@ -346,15 +346,21 @@ def send_to_sign_credential(snapshot, token, url):
|
||||||
logger.error(_("Credential not remotely builded to URL '%s'. Do you have internet? Is your server up & running? Is the url token authorized?\n %s"), url, e)
|
logger.error(_("Credential not remotely builded to URL '%s'. Do you have internet? Is your server up & running? Is the url token authorized?\n %s"), url, e)
|
||||||
return json.dumps(snapshot)
|
return json.dumps(snapshot)
|
||||||
|
|
||||||
|
# apt install qrencode
|
||||||
|
def generate_qr_code(url, disable_qr):
|
||||||
|
"""Generate and print QR code for the given URL."""
|
||||||
|
if disable_qr:
|
||||||
|
return
|
||||||
|
qr_command = "echo {} | qrencode -t ANSI".format(url)
|
||||||
|
print(exec_cmd(qr_command))
|
||||||
|
|
||||||
# TODO sanitize url, if url is like this, it fails
|
# TODO sanitize url, if url is like this, it fails
|
||||||
# url = 'http://127.0.0.1:8000/api/snapshot/'
|
# url = 'http://127.0.0.1:8000/api/snapshot/'
|
||||||
def send_snapshot_to_devicehub(snapshot, token, url, ev_uuid, legacy):
|
def send_snapshot_to_devicehub(snapshot, token, url, ev_uuid, legacy, disable_qr):
|
||||||
url_components = urllib.parse.urlparse(url)
|
url_components = urllib.parse.urlparse(url)
|
||||||
ev_path = f"evidence/{ev_uuid}"
|
ev_path = f"evidence/{ev_uuid}"
|
||||||
components = (url_components.scheme, url_components.netloc, ev_path, '', '', '')
|
components = (url_components.scheme, url_components.netloc, ev_path, '', '', '')
|
||||||
ev_url = urllib.parse.urlunparse(components)
|
ev_url = urllib.parse.urlunparse(components)
|
||||||
# apt install qrencode
|
|
||||||
|
|
||||||
headers = {
|
headers = {
|
||||||
"Authorization": f"Bearer {token}",
|
"Authorization": f"Bearer {token}",
|
||||||
|
@ -375,18 +381,15 @@ def send_snapshot_to_devicehub(snapshot, token, url, ev_uuid, legacy):
|
||||||
public_url = response.get('public_url')
|
public_url = response.get('public_url')
|
||||||
dhid = response.get('dhid')
|
dhid = response.get('dhid')
|
||||||
if public_url:
|
if public_url:
|
||||||
# apt install qrencode
|
generate_qr_code(public_url, disable_qr)
|
||||||
qr = "echo {} | qrencode -t ANSI".format(public_url)
|
|
||||||
print(exec_cmd(qr))
|
|
||||||
print("url: {}".format(public_url))
|
print("url: {}".format(public_url))
|
||||||
if dhid:
|
if dhid:
|
||||||
print("dhid: {}".format(dhid))
|
print("dhid: {}".format(dhid))
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.error(response_text)
|
logger.error(response_text)
|
||||||
else:
|
else:
|
||||||
qr = "echo {} | qrencode -t ANSI".format(ev_url)
|
generate_qr_code(ev_url, disable_qr)
|
||||||
print(exec_cmd(qr))
|
print("url: {}".format(ev_url))
|
||||||
print(f"url: {ev_url}")
|
|
||||||
else:
|
else:
|
||||||
logger.error(_("Snapshot %s not remotely sent to URL '%s'. Server responded with error:\n %s"), ev_uuid, url, response_text)
|
logger.error(_("Snapshot %s not remotely sent to URL '%s'. Server responded with error:\n %s"), ev_uuid, url, response_text)
|
||||||
|
|
||||||
|
@ -415,10 +418,11 @@ def load_config(config_file="settings.ini"):
|
||||||
legacy = config.get('settings', 'legacy', fallback=None)
|
legacy = config.get('settings', 'legacy', fallback=None)
|
||||||
url_wallet = config.get('settings', 'url_wallet', fallback=None)
|
url_wallet = config.get('settings', 'url_wallet', fallback=None)
|
||||||
wb_sign_token = config.get('settings', 'wb_sign_token', fallback=None)
|
wb_sign_token = config.get('settings', 'wb_sign_token', fallback=None)
|
||||||
|
disable_qr = config.get('settings', 'disable_qr', fallback=None)
|
||||||
else:
|
else:
|
||||||
logger.error(_("Config file '%s' not found. Using default values."), config_file)
|
logger.error(_("Config file '%s' not found. Using default values."), config_file)
|
||||||
path = os.path.join(os.getcwd())
|
path = os.path.join(os.getcwd())
|
||||||
url, token, device, erase, legacy, url_wallet, wb_sign_token = (None,)*7
|
url, token, device, erase, legacy, url_wallet, wb_sign_token, disable_qr = (None,)*8
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'path': path,
|
'path': path,
|
||||||
|
@ -428,7 +432,8 @@ def load_config(config_file="settings.ini"):
|
||||||
'erase': erase,
|
'erase': erase,
|
||||||
'legacy': legacy,
|
'legacy': legacy,
|
||||||
'wb_sign_token': wb_sign_token,
|
'wb_sign_token': wb_sign_token,
|
||||||
'url_wallet': url_wallet
|
'url_wallet': url_wallet,
|
||||||
|
'disable_qr': disable_qr
|
||||||
}
|
}
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
|
@ -522,7 +527,8 @@ def main():
|
||||||
config['token'],
|
config['token'],
|
||||||
config['url'],
|
config['url'],
|
||||||
snap_uuid,
|
snap_uuid,
|
||||||
legacy
|
legacy,
|
||||||
|
config['disable_qr']
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.info(_("END"))
|
logger.info(_("END"))
|
||||||
|
|
Loading…
Reference in a new issue