from flask import Blueprint, jsonify, request from database import Message, Member from datetime import datetime group_stat_api = Blueprint('group_stat_api', __name__) @group_stat_api.route("/top_users",methods=["GET"]) def top_users(): number = request.args.get("number") if not number: number = 3 number = int(number) members = [] counts = [] for user in Member.select(): members.append(user.first_name) counts.append(Message.select().where(Message.user_id == user.user_id).count()) # Sorting counts, members = (list(t) for t in zip(*sorted(zip(counts,members),reverse=True))) members.insert(number, "Others") counts.insert(number, sum(counts[number:])) return jsonify({ "members":members[:number+1], "counts":counts[:number+1] })