56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
# Importing library
|
|
import qrcode
|
|
import random
|
|
import io
|
|
|
|
from Server.DB.handler import QR
|
|
from Server.DB.handler import session
|
|
|
|
import configparser
|
|
config = configparser.ConfigParser()
|
|
|
|
config.sections()
|
|
config.read('Options.ini')
|
|
|
|
def randint(min,max):
|
|
a = random.randint(min,max)
|
|
return a
|
|
|
|
def generate_QR_Code():
|
|
if config['SETTINGS']['lockqrcode_whit_secret'] == 'True':
|
|
for desk in range(int(config['DEFAULT']['max_desks'])):
|
|
img_byte_arr = io.BytesIO()
|
|
secret = random.randint(1,9999999)
|
|
data = config['DEFAULT']['host'] + '/order_get?desk='+str(desk)+'&secret='+str(secret)
|
|
qr_img = qrcode.make(data)
|
|
qr_img.save(img_byte_arr, format='PNG')
|
|
img_byte_arr = img_byte_arr.getvalue()
|
|
qr = QR(desk,img_byte_arr, qr_secret=secret)
|
|
existing_qr = session.query(QR).filter_by(desk=desk).first()
|
|
if existing_qr:
|
|
existing_qr.qr_img = img_byte_arr # Update existing row
|
|
existing_qr.qr_secret = secret
|
|
else:
|
|
session.add(qr) # Insert new row
|
|
session.commit()
|
|
else: #no Optional features
|
|
for desk in range(int(config['DEFAULT']['max_desks'])):
|
|
img_byte_arr = io.BytesIO()
|
|
data = config['DEFAULT']['host'] + '/order_get?desk='+str(desk)
|
|
qr_img = qrcode.make(data)
|
|
qr_img.save(img_byte_arr, format='PNG')
|
|
img_byte_arr = img_byte_arr.getvalue()
|
|
qr = QR(desk,img_byte_arr)
|
|
existing_qr = session.query(QR).filter_by(desk=desk).first()
|
|
if existing_qr:
|
|
existing_qr.qr_img = img_byte_arr # Update existing row
|
|
existing_qr.qr_secret = 0
|
|
else:
|
|
session.add(qr) # Insert new row
|
|
session.commit()
|
|
|
|
|
|
|
|
# Encoding data using make() function
|
|
|
|
# Saving as an image file
|