#! /bin/python3 from random import choice from flask import Flask, render_template, request from configparser import ConfigParser from datetime import datetime import logging import pytz app = Flask(__name__, static_url_path='', static_folder='static', template_folder='templates') config = ConfigParser() config.read('config.ini') logging.basicConfig(encoding='utf-8', level=logging.INFO, format='%(message)s') logger = logging.getLogger('waitress') tz = pytz.timezone('Europe/Berlin') @app.after_request def log_the_request(response): now = datetime.now(tz=tz) if not request.remote_user: remote_user = "-" else: remote_user = request.remote_user if not request.referrer: referrer = "-" else: referrer = request.referrer if request.full_path[-1] == '?': full_path = request.full_path[:-1] else: full_path = request.full_path log = { 'remote_addr': request.remote_addr, 'remote_user': remote_user, 'url': full_path, 'date': now.strftime("%d/%b/%Y:%H:%M:%S %z"), 'referrer': referrer, 'user_agent': request.user_agent.string, 'method': request.method, 'content_length': response.content_length, 'status_code': response.status_code } logfile = "{} - {} [{}] \"{} {}\" {} {} \"{}\" \"{}\"".format(log['remote_addr'], log['remote_user'], log['date'], log['method'], log['url'], log['status_code'], log['content_length'], log['referrer'], log['user_agent']) logger.info(logfile) return response @app.route("/") def hello(): title = config.get('main', 'title') separator = config.get('main', 'separator') separator_char = config.get('main', 'separator_char') ablines = [] lines = getContent() for line in lines: ab = line.split(separator_char) ablines.append( {'A': str(ab[0]), 'B': str(ab[1])} ) with open("ab.txt", "rbU") as f: num_lines = sum(1 for _ in f) return render_template('index.html', title=title, separator=separator, content=ablines, num_lines=num_lines) def getContent(): lines = [a.strip() for a in open("ab.txt").readlines()] result = [choice(lines) for a in range(5)] return result if __name__ == "__main__": from waitress import serve serve(app, host='0.0.0.0', port=5000, ident='a/b game')