add qr code gen
This commit is contained in:
@ -4,10 +4,11 @@ from .kroger import(
|
||||
kroger_token, find_store, search_product
|
||||
)
|
||||
from .garfai import(
|
||||
picture_time,
|
||||
garfpic,
|
||||
process_image_requests,
|
||||
generate_chat
|
||||
)
|
||||
from .iputils import is_private
|
||||
from .aod import aod_message
|
||||
from .wiki import wikisum
|
||||
from .wiki import wikisum
|
||||
from .qr import generate_qr
|
@ -12,10 +12,9 @@ openaikey = config.OPENAI_TOKEN
|
||||
txtmodel = config.TXT_MODEL
|
||||
imgmodel = config.IMG_MODEL
|
||||
|
||||
# GarfPics
|
||||
image_request_queue = asyncio.Queue()
|
||||
|
||||
async def picture_time(message, prompt):
|
||||
async def garfpic(message, prompt):
|
||||
await image_request_queue.put({'message': message, 'prompt': prompt})
|
||||
|
||||
async def generate_image(prompt):
|
||||
|
63
garfpy/qr.py
Normal file
63
garfpy/qr.py
Normal file
@ -0,0 +1,63 @@
|
||||
import qrcode
|
||||
from io import BytesIO
|
||||
|
||||
|
||||
def calculate_qr_settings(text):
|
||||
text_length = len(text)
|
||||
|
||||
if text_length <= 25:
|
||||
version = 1
|
||||
box_size = 12
|
||||
elif text_length <= 47:
|
||||
version = 2
|
||||
box_size = 10
|
||||
elif text_length <= 77:
|
||||
version = 3
|
||||
box_size = 8
|
||||
elif text_length <= 114:
|
||||
version = 4
|
||||
box_size = 7
|
||||
elif text_length <= 154:
|
||||
version = 5
|
||||
box_size = 6
|
||||
elif text_length <= 195:
|
||||
version = 6
|
||||
box_size = 5
|
||||
elif text_length <= 224:
|
||||
version = 7
|
||||
box_size = 5
|
||||
elif text_length <= 279:
|
||||
version = 8
|
||||
box_size = 4
|
||||
elif text_length <= 335:
|
||||
version = 9
|
||||
box_size = 4
|
||||
elif text_length <= 395:
|
||||
version = 10
|
||||
box_size = 3
|
||||
else:
|
||||
version = None
|
||||
box_size = 3
|
||||
|
||||
return version, box_size
|
||||
|
||||
async def generate_qr(text):
|
||||
version, box_size = calculate_qr_settings(text)
|
||||
|
||||
qr = qrcode.QRCode(
|
||||
version=version,
|
||||
error_correction=qrcode.constants.ERROR_CORRECT_L,
|
||||
box_size=box_size,
|
||||
border=4,
|
||||
)
|
||||
|
||||
qr.add_data(text)
|
||||
qr.make(fit=True)
|
||||
|
||||
qr_image = qr.make_image(fill_color="black", back_color="white")
|
||||
|
||||
img_buffer = BytesIO()
|
||||
qr_image.save(img_buffer, format='PNG')
|
||||
img_buffer.seek(0)
|
||||
|
||||
return img_buffer
|
Reference in New Issue
Block a user