WebAdminPanel/apps/group_stat_api.py

34 lines
847 B
Python

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]
})