0%

npupt-invite-tree

前言

最近有空整理了一下

写这个邀请树纯粹是一时冲动?

也许吧-.-看U2的邀请查询系统感觉挺好玩的

然后又想看Admin这棵树有多大(flag 做完发现浏览器撑不住了

然后发现自己好菜啊(

调查

主要的几个方案:

数据怎么获取:PY啊

前端:Echarts及其相关语言的其他库(pyechart等)、d3js等基于js的一些可视化工具

后端:自己喜欢就好….

最终方案

数据:PY

前端:Echart请求api返回子树的json

后端:

​ 现在方案:根据PY到的数据将所有没有邀请人的节点串到一个不存在的节点上,将森林串成一棵树,那么我们任何要查询的子树都在这棵树上了,利用AnyTree@Python这个库export_to_json 生成full.json,然后将full.json放到data里。 当api获取到要查询的username时在full.json里查询这个名字将然后根据输入的username对应的uid在树上搜索一通就可以获取到对应的sub-tree,然后把sub-tree生成一个json文件保存到本地(做一个辣鸡缓存)然后供前端查询

​ 原方案:利用AnyTree@Python的import 导入这棵树 在树里查

​ 性能问题:不知道为什么AnyTree的import肥肠的慢…大概十万个点导入花了40S…

​ 最优方案:在server启动的时候就把整棵树读到内存里 然后在内存查 大概会有一点点效率差别吧….

本人擅长口胡,建议去GitHub查看 https://github.com/yezi1000/invite-tree

代码很丑 有问题可以留言或者issue…虽然我觉得也没人会star(

无限期咕咕咕

经过评估后发现前端需要全部重写

数据库类型也需要修改 以下全部作废

施工中 仅作存档 代码后续会开源至GitHub

感谢U2-invite-tree的前端

爬虫数据获取是在Developer_HZH基础上修改而来

感谢以上两位

不知道放啥歌,放首八爷的loser吧

没学过PY google拼拼凑凑出来的 获取有效信息部分很绕 很丑 虽然我知道可以用class获取..

~~Update info: