-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScan.py
More file actions
38 lines (32 loc) · 1.22 KB
/
Scan.py
File metadata and controls
38 lines (32 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from QR import QR
from pyzbar.pyzbar import ZBarSymbol
from DataHandler import DataHandler
from PIL import Image
import sys
class Scan:
def __init__(self, parser):
self.qr_reader = QR()
self.data_handler = DataHandler()
self.parser = parser
self.args = self.parser.parse_args()
def scan(self):
self.qr_reader.create_camera()
scanned = False
while not scanned:
if self.args.image:
data = self.qr_reader.decode(Image.open(f'{self.args.image}'), symbol_type=[ZBarSymbol.QRCODE])
else:
data = self.qr_reader.decode(self.qr_reader.read_camera(), symbol_type=[ZBarSymbol.QRCODE])
if data:
# TODO Refactor, design is iffy
yaml_data = self.data_handler.readData(data)
self.data_handler.writeData(yaml_data)
# I remember there being some reason why I didn't use a break here
# Either it didn't work or readability
scanned = True
self.qr_reader.destroy_windows()
self.qr_reader.release_camera()
return
def cleanup(self):
self.qr_reader.destroy_windows()
self.qr_reader.release_camera()