""" Website for Craftbroec RR stuff """ import os import hashlib import hmac import subprocess from flask import jsonify, abort, request, send_from_directory from app import app from app.util import job @app.route('/') def index(): """Show index page""" return send_from_directory('static', 'index.html') @app.route("/tutorial") @app.route("/tutorial/book") def tutorial_book(): """Display book""" return send_from_directory('static', 'tutorial/book.pdf') @app.route("/tutorial/article") def tutorial_article(): """Display book""" return send_from_directory('static', 'tutorial/article.pdf') @app.route("/tutorial/dist") def tutorial_dist(): """Display book""" return send_from_directory('static', 'tutorial/dist.pdf') @app.route("/tutorial.png") def tutorial_dist_png(): """Display book""" return send_from_directory('static', 'tutorial/dist.png') @app.route('/typeset', methods=['GET', 'POST']) def typeset(): """Add job to schedeuler""" job.add() return jsonify(True) @app.route('/deploy', methods=['POST']) def deploy(): """Run deploy script""" secret = os.environ["WEBHOOK_KEY"].encode('utf-8') digest = hmac.new(secret, request.data, hashlib.sha256).hexdigest() signature = request.headers['X-Gogs-Signature'] if len(signature) < 2 or not hmac.compare_digest(signature, digest): abort(400, 'Invalid signature') subprocess.check_output(['git', 'pull']) subprocess.check_output(['pipenv', 'sync']) subprocess.check_output(['touch', 'flask.wsgi']) return jsonify(True)