# 展示统计信息 import json from apiflask import APIBlueprint from .sysinfo import da bp = APIBlueprint("stats", __name__, url_prefix="/stats") # 返回国家分布 @bp.get("/cou") def stats_cou(): dist = da.getcommondata("coudist")[0][0] data = json.loads(dist) # 处理为符合echart dataset的格式 dimensions = ["国家", "IPv6 DNS数量"] source = [] for v in data.values(): source.append({dimensions[0]: v['cou'], dimensions[1]: v['c']}) return {"code": 0, "data": {"dimensions": dimensions, "source": source}, "msg": "success"} # 返回AS分布 @bp.get("/asn") def stats_asn(): dist = da.getcommondata("asndist")[0][0] data = json.loads(dist) # 处理为符合echart dataset的格式 dimensions = ["自治域", "IPv6 DNS数量"] source = [] for v in data.values(): source.append({dimensions[0]: "ASN" + str(v['asn']), dimensions[1]: v['c']}) return {"code": 0, "data": {"dimensions": dimensions, "source": source}, "msg": "success"} # 返回ISP分布 @bp.get("/isp") def stats_isp(): dist = da.getcommondata("ispdist")[0][0] data = json.loads(dist) # 处理为符合echart dataset的格式 dimensions = ["服务商", "IPv6 DNS数量"] source = [] for v in data.values(): source.append({dimensions[0]: v['isp'], dimensions[1]: v['c']}) return {"code": 0, "data": {"dimensions": dimensions, "source": source}, "msg": "success"}