diff --git a/README.md b/README.md index ae83a48..516ec81 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ cd extract_otp_secret_keys ## Program help: arguments and options -
usage: extract_otp_secrets.py [-h] [--camera NUMBER] [--qr {QREADER,DEEP_QREADER,ZBAR,CV2,WECHAT}] [--json FILE] [--csv FILE] [--keepass FILE] [--printqr] [--saveqr DIR] [--verbose | --quiet] [infile ...]
+
usage: extract_otp_secrets.py [-h] [--camera NUMBER] [--qr {QREADER,DEEP_QREADER,ZBAR,CV2,CV2_WECHAT}] [--json FILE] [--csv FILE] [--keepass FILE] [--printqr] [--saveqr DIR] [--no-color] [--verbose | --quiet] [infile ...]
 
 Extracts one time password (OTP) secret keys from QR codes, e.g. from Google Authenticator app.
 If no infiles are provided, the QR codes are interactively captured from the camera.
@@ -69,13 +69,14 @@ positional arguments:
 options:
   -h, --help                    show this help message and exit
   --camera NUMBER, -C NUMBER    camera number of system (default camera: 0)
-  --qr {QREADER,DEEP_QREADER,ZBAR,CV2,WECHAT}, -Q {QREADER,DEEP_QREADER,ZBAR,CV2,WECHAT}
+  --qr {QREADER,DEEP_QREADER,ZBAR,CV2,CV2_WECHAT}, -Q {QREADER,DEEP_QREADER,ZBAR,CV2,CV2_WECHAT}
                                 QR reader (default: ZBAR)
   --json FILE, -j FILE          export json file or - for stdout
   --csv FILE, -c FILE           export csv file or - for stdout
   --keepass FILE, -k FILE       export totp/hotp csv file(s) for KeePass, - for stdout
   --printqr, -p                 print QR code(s) as text to the terminal (requires qrcode module)
   --saveqr DIR, -s DIR          save QR code(s) as images to the given folder (requires qrcode module)
+  --no-color, -n                do not use ANSI colors in console output
   --verbose, -v                 verbose output
   --quiet, -q                   no stdout output, except output set by -
 
diff --git a/src/extract_otp_secrets.py b/src/extract_otp_secrets.py
index e3da1fb..d7423a0 100644
--- a/src/extract_otp_secrets.py
+++ b/src/extract_otp_secrets.py
@@ -253,7 +253,7 @@ def extract_otps_from_camera(args: Args) -> Otps:
         success, img = cam.read()
         new_otps_count = 0
         if not success:
-            log_error("Failed to capture image")
+            log_error("Failed to capture image from camera")
             break
         try:
             if qr_mode in [QRMode.QREADER, QRMode.DEEP_QREADER]:
@@ -281,10 +281,7 @@ def extract_otps_from_camera(args: Args) -> Otps:
                         new_otps_count = extract_otps_from_otp_url(otp_url, otp_urls, otps, args)
                     cv2_draw_box(img, raw_pts, get_color(new_otps_count, otp_url))
             else:
-                assert False, f"Wrong QReader mode {qr_mode.name}"
-        except AssertionError as e:
-            # Exceptions not to log, but to pass further
-            raise e
+                abort(f"Invalid QReader mode: {qr_mode.name}")
         except Exception as e:
             log_error(f'An error occured during QR detection and decoding for QR reader {qr_mode}. Changed to the next QR reader.', e)
             qr_mode = next_qr_mode(qr_mode)