Exemplo n.º 1
0
def index():
    form = InputForm()
    if form.validate_on_submit():
        if len(form.url.data) > 0:
            if ('keyboard-layout-editor.com/#/gists/' in form.url.data
                    and requests.get('https://api.github.com/gists/' +
                                     form.url.data.split('gists/', 1)[1]).
                    status_code < 400):
                return redirect('/api/' + form.url.data.split('gists/', 1)[1])
            else:
                flash('Not a valid Keyboard Layout Editor gist')
        elif form.json.data != None:
            try:
                str_data = form.json.data.read().decode('utf-8')
                data = kle_render.deserialise(json.loads(str_data))
            except ValueError:  # if json or string decoding fails
                flash(
                    Markup(
                        'Invalid JSON input - make sure to <a class="alert-link" target="_blank" href="http://imgur.com/a/qAmqB">download strict JSON</a>'
                    ))
            else:
                img = kle_render.render_keyboard(data)
                return serve_pil_image(img)
    flash_errors(form)
    return render_template('index.html', form=form)
Exemplo n.º 2
0
def render(perm):
    content = request.get_json(silent=True)

    data = kle_render.deserialise(content)
    img = kle_render.render_keyboard(data)
    img.save("rendered/" + perm + ".png", 'PNG')
    return serve_pil_image(img)
Exemplo n.º 3
0
 def get(self, id):
     token = app.config['API_TOKEN']
     g = Github(token)  # authenticate to avoid rate limits
     content = json.loads([
         value for key, value in g.get_gist(id).files.items()
         if key.endswith('.kbd.json')
     ][0].content)
     data = kle_render.deserialise(content)
     img = kle_render.render_keyboard(data)
     return serve_pil_image(img)
Exemplo n.º 4
0
import kle_render
import requests, json
from timeit import default_timer as timer

id = '4de8adb88cb4c45c2f43'
start = timer()

data = kle_render.deserialise(
    json.loads([
        value for key, value in requests.get('http://api.github.com/gists/%s' %
                                             id).json()['files'].items()
        if key.endswith('.kbd.json')
    ][0]['content']))
end = timer()
print("--- deserialised at %s seconds ---" % (end - start))

img = kle_render.render_keyboard(data)
end = timer()
print("--- rendered at %s seconds ---" % (end - start))

img.save("render_output.png", 'PNG')
Exemplo n.º 5
0
 def post(self):
     data = kle_render.deserialise(json.loads(api.payload))
     img = kle_render.render_keyboard(data)
     return serve_pil_image(img)