from datetime import datetime, date, timedelta import json from urllib import response from dateutil.relativedelta import relativedelta import os from flask import Flask, render_template, redirect, request, url_for, jsonify, Response import jinja_partials from flask_htmx import HTMX import minify_html from urllib.parse import urlparse app = Flask(__name__) jinja_partials.register_extensions(app) htmx = HTMX(app) @app.after_request def response_minify(response): """ minify html response to decrease site traffic """ if response.content_type == u'text/html; charset=utf-8': response.set_data( minify_html.minify(response.get_data( as_text=True), minify_js=True, remove_processing_instructions=True) ) return response return response @app.route("/api/status") def status(): req_data = save_request(request) resp = Response(json.dumps(req_data, indent=4, default=str), mimetype='application/json') return resp def save_request(request): req_data = {} req_data['endpoint'] = request.endpoint req_data['method'] = request.method req_data['url'] = request.url req_data['cookies'] = request.cookies req_data['data'] = request.data req_data['headers'] = dict(request.headers) req_data['headers'].pop('Cookie', None) req_data['args'] = request.args req_data['form'] = request.form return req_data if __name__ == '__main__': # Bind to PORT if defined, otherwise default to 5000. port = int(os.environ.get('PORT', 5000)) app.run(host='127.0.0.1', port=port)