From 3558eba93b00b5daba90c3931db22fe1e8f66613 Mon Sep 17 00:00:00 2001 From: scito Date: Sat, 31 Dec 2022 17:30:24 +0100 Subject: [PATCH] use detect_and_decode since qrreader is fixed --- Pipfile.lock | 4 ++-- src/extract_otp_secrets.py | 11 ++--------- tests/extract_otp_secrets_test.py | 1 + 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index bf17ee5..6fb1428 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -187,10 +187,10 @@ }, "qreader": { "hashes": [ - "sha256:fc75684088b4bef2b268eefda7006cb4b0276e53d6cdd678bc7d2bbb7d8fcd21" + "sha256:f96d2879c9f47f9641da55dc3e1df765cd4d6f1cfbc8b7fa811b70c1e27d4fba" ], "index": "pypi", - "version": "==1.3.1" + "version": "==1.3.2" } }, "develop": { diff --git a/src/extract_otp_secrets.py b/src/extract_otp_secrets.py index eae4161..682c4a0 100644 --- a/src/extract_otp_secrets.py +++ b/src/extract_otp_secrets.py @@ -412,15 +412,8 @@ def convert_img_to_otp_url(filename: str, args: Args) -> OtpUrls: qr_mode = QRMode[args.qr] otp_urls: OtpUrls = [] - if qr_mode == QRMode.QREADER: - # otp_url = QReader().detect_and_decode(img, False) # broken - qreader = QReader() - bbox, found = qreader.detect(img) - if found: - otp_url = qreader.decode(img, bbox) - otp_urls.append(otp_url) - elif qr_mode == QRMode.DEEP_QREADER: - otp_url = QReader().detect_and_decode(img, True) + if qr_mode in [QRMode.QREADER, QRMode.DEEP_QREADER]: + otp_url = QReader().detect_and_decode(img, qr_mode == QRMode.DEEP_QREADER) otp_urls.append(otp_url) elif qr_mode == QRMode.CV2: otp_url, _, _ = cv2.QRCodeDetector().detectAndDecode(img) diff --git a/tests/extract_otp_secrets_test.py b/tests/extract_otp_secrets_test.py index 206aa70..518762a 100644 --- a/tests/extract_otp_secrets_test.py +++ b/tests/extract_otp_secrets_test.py @@ -362,6 +362,7 @@ def test_extract_verbose(capsys: pytest.CaptureFixture[str], relaxed: bool) -> N if not qreader_available: expected_stdout = expected_stdout.replace('QReader installed: True', 'QReader installed: False') + expected_stdout = expected_stdout.replace('QR reading mode: ZBAR\n\n', '') if relaxed or sys.implementation.name == 'pypy': print('\nRelaxed mode\n')