OllisGit / OctoPrint-SpoolManager

Plugin for managing Spools
168 stars 59 forks source link

QRCode generation error #260

Closed TexGG closed 2 years ago

TexGG commented 2 years ago

Description

QRCode generation fail since upgrade to 1.7.0. Everytime I open a spool, or the configuration, I got a replacement image/text for the QRCode, and an error print in log.

Configuration

2022-04-20 19:15:23,196 - octoprint.environment - INFO - Detected environment is Python 3.7.3 under Linux (linux). Details:
|  hardware:
|    cores: 4
|    freq: 1400.0
|    ram: 914001920
|  os:
|    bits: 32
|    id: linux
|    platform: linux
|  plugins:
|    pi_support:
|      model: Raspberry Pi 3 Model B Plus Rev 1.3
|      octopi_version: 0.18.0
|      throttle_state: '0x80008'
|  python:
|    pip: 22.0.4
|    version: 3.7.3
|    virtualenv: /home/pi/oprint
2022-04-20 19:15:44,793 - octoprint.plugins.PrintJobHistory - INFO - Plugin-State:
| PreHeat=enabled (0.8.0)
| filamentmanager=disabled (1.7.2)
| DisplayLayerProgress=enabled (1.28.0)
| SpoolManager=enabled (1.7.0)
| UltimakerFormat=missing (None)
| PrusaSlicerThumbnail=enabled (1.0.0)
| costestimation=enabled (3.5.0)

Logs

Error in config and at boot

2022-04-20 19:16:46,779 - octoprint.plugins.SpoolManager - INFO - API generate QR code for Spool with databaseId: qrPreviewId
2022-04-20 19:16:47,113 - octoprint - ERROR - Exception on /plugin/SpoolManager/generateQRCode/qrPreviewId [GET]
Traceback (most recent call last):
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/util/__init__.py", line 1737, in wrapper
    return f(*args, **kwargs)
  File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_SpoolManager/api/SpoolManagerAPI.py", line 581, in generateSpoolQRCode
    img_qr_big = qrMaker.make_image(fill_color=fillColor, back_color=backgroundColor).convert('RGB')
  File "/home/pi/oprint/lib/python3.7/site-packages/qrcode/main.py", line 293, in make_image
    self.border, self.modules_count, self.box_size, **kwargs)
  File "/home/pi/oprint/lib/python3.7/site-packages/qrcode/image/base.py", line 13, in __init__
    self._img = self.new_image(**kwargs)
  File "/home/pi/oprint/lib/python3.7/site-packages/qrcode/image/pil.py", line 24, in new_image
    if fill_color.lower() != "black" or back_color.lower() != "white":
AttributeError: 'tuple' object has no attribute 'lower'

Error consulting a spool:

2022-04-20 19:20:56,391 - octoprint.plugins.SpoolManager - INFO - API generate QR code for Spool with databaseId: 36
2022-04-20 19:20:56,697 - octoprint - ERROR - Exception on /plugin/SpoolManager/generateQRCode/36 [GET]
Traceback (most recent call last):
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/oprint/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/util/__init__.py", line 1737, in wrapper
    return f(*args, **kwargs)
  File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_SpoolManager/api/SpoolManagerAPI.py", line 581, in generateSpoolQRCode
    img_qr_big = qrMaker.make_image(fill_color=fillColor, back_color=backgroundColor).convert('RGB')
  File "/home/pi/oprint/lib/python3.7/site-packages/qrcode/main.py", line 293, in make_image
    self.border, self.modules_count, self.box_size, **kwargs)
  File "/home/pi/oprint/lib/python3.7/site-packages/qrcode/image/base.py", line 13, in __init__
    self._img = self.new_image(**kwargs)
  File "/home/pi/oprint/lib/python3.7/site-packages/qrcode/image/pil.py", line 24, in new_image
    if fill_color.lower() != "black" or back_color.lower() != "white":
AttributeError: 'tuple' object has no attribute 'lower'
TexGG commented 2 years ago

Ok, after a while I searched myself and found what the problem is : the version of my qrcode package. It was version 6.1, and the RGB paramter used in SpoolManager 1.7.0 to create QRcode only appared in version 7.1. After doing an upgrade : python -m pip install --upgrade qrcode, I finally got my QRcode working

github-actions[bot] commented 2 years ago

This issue has been automatically marked for closing, because it has not had activity in 30 days. It will be closed if no further activity occurs in 10 days.

TexGG commented 2 years ago

Stil not merged.

github-actions[bot] commented 2 years ago

This issue has been automatically marked for closing, because it has not had activity in 30 days. It will be closed if no further activity occurs in 10 days.

github-actions[bot] commented 2 years ago

This issue was closed, because it has been already marked for 10 days with no activity.