[mod] /stats : detail per engine

allow to submit a github issue including the technical details
(exceptions, errors, warning, checker result)
This commit is contained in:
Alexandre Flament 2021-04-23 21:08:48 +02:00
parent 0603b043ce
commit df41b77121
7 changed files with 227 additions and 20 deletions

View file

@ -1073,16 +1073,23 @@ def image_proxy():
@app.route('/stats', methods=['GET'])
def stats():
"""Render engine statistics page."""
sort_order = request.args.get('sort', default='name', type=str)
selected_engine_name = request.args.get('engine', default=None, type=str)
filtered_engines = dict(filter(lambda kv: (kv[0], request.preferences.validate_token(kv[1])), engines.items()))
if selected_engine_name:
if selected_engine_name not in filtered_engines:
selected_engine_name = None
else:
filtered_engines = [selected_engine_name]
checker_results = checker_get_result()
checker_results = checker_results['engines'] \
if checker_results['status'] == 'ok' and 'engines' in checker_results else {}
filtered_engines = dict(filter(lambda kv: (kv[0], request.preferences.validate_token(kv[1])), engines.items()))
engine_stats = get_engines_stats(filtered_engines)
engine_reliabilities = get_reliabilities(filtered_engines, checker_results)
sort_order = request.args.get('sort', default='name', type=str)
SORT_PARAMETERS = {
'name': (False, 'name', ''),
'score': (True, 'score', 0),
@ -1114,6 +1121,7 @@ def stats():
sort_order=sort_order,
engine_stats=engine_stats,
engine_reliabilities=engine_reliabilities,
selected_engine_name=selected_engine_name,
)