forked from platypush/platypush
34 lines
850 B
Python
34 lines
850 B
Python
|
import base64
|
||
|
|
||
|
from flask import abort, request, Blueprint, Response
|
||
|
|
||
|
from platypush.backend.http.app import template_folder
|
||
|
from platypush.context import get_plugin
|
||
|
from platypush.plugins.qrcode import QrcodePlugin
|
||
|
|
||
|
qrcode = Blueprint('qrcode', __name__, template_folder=template_folder)
|
||
|
|
||
|
# Declare routes list
|
||
|
__routes__ = [
|
||
|
qrcode,
|
||
|
]
|
||
|
|
||
|
|
||
|
@qrcode.route('/qrcode', methods=['GET'])
|
||
|
def generate_code():
|
||
|
"""
|
||
|
This route can be used to generate a QR code given a ``content`` parameter.
|
||
|
"""
|
||
|
|
||
|
content = request.args.get('content')
|
||
|
if not content:
|
||
|
abort(400, 'Expected content parmeter')
|
||
|
|
||
|
plugin: QrcodePlugin = get_plugin('qrcode')
|
||
|
response = plugin.generate(content, format='png').output
|
||
|
data = base64.decodebytes(response['data'].encode())
|
||
|
return Response(data, mimetype='image/png')
|
||
|
|
||
|
|
||
|
# vim:sw=4:ts=4:et:
|