Open codeway3 opened 6 years ago
初期调研 梦幻积分需要自己通过公式计算 参考DOTA2 wiki https://dota2.gamepedia.com/Fantasy_Dota api没有现成的战队比赛查询 需要从explorer 获取比赛列表 再查询具体比赛信息 https://www.opendota.com/explorer?isTi7Team=®ion=&hero=&player=&tier=&league=9601&organization=&team=&side=&result=&playerPurchased=&minDuration=&order=&maxDate=&limit=1000&having=&maxDuration=&minDate=&laneRole=&select=&group=match
v0.0.1 #5 完成计算某场比赛的梦幻积分的功能 添加对api进行请求的功能(如果出现sslv3 failure,pip安装pyOpenSSL,ndg-httpsclient,pyasn1模块)(这部分后期可能需要添加异常处理) TODO: 弄一个MongoDB 用来存储api获取的数据 主流程获取 先从mongo里面找 没有的话 发起request 并存储到db中 前端也需要做 还没考虑好用什么
v0.02 添加了MongoDB的相关比赛查找与插入操作,添加了一个向数据库添加某个联赛所有比赛信息的模块,使用了click,有进度条功能,有延时请求功能(防止超过opendota的60次/min的请求限制) 因为一些requests关于ssl抛出异常的问题,虚拟环境替换成了python3.6,因为在3.5下openssl升级没有实际应用到环境中,没查到具体原因。 参考https://comeroutewithme.com/2016/03/13/python-osx-openssl-issue/ TODO: 看一下web的东西,先要能把架子搭起来才好。 前后端分离什么的暂时不考虑。
简单弄了个flask架子,调整了cosumption和heatmap模块以便于应用在web应用中。
主要解决了两个问题 第一个是flask与pyecharts的结合问题,pyecharts v0.5.0以后的版本有问题,会导致flask应用运行后不在console输出访问的相关信息,查找issue后没有获得解决方案,但是Django方面有issue说有相关的异常问题。解决方法是pyecharts回退到v0.4.1,开始还以为是flask1.0.2的问题,后来看了两个环境的pip list才发现pyecharts也有版本差异。 (补充一点 flask1.0之后会有一个配置项,FLASK_ENV 默认会是production,在开发时会提醒不要在生产环境使用默认的wsgi) 第二个问题是上次更新临时解决的requests的ssl问题,我把虚拟环境重装了3.5的版本,又出现了这样的问题,网上会有很多推荐用verify=False,但这个方法仅在部分情况有效。在又查了一些方案后,可以通过安装几个ssl的包解决这个问题(cryptography,pyOpenSSL,certifi),参考这里,此时request.get里的verify=False要去掉。
关于程序入口的问题,一个cli.py,是命令行入口,run.py是web app入口,其中都有一个sys.path.append('..'),这不是很科学,是一个要处理的点。
flask要不要用blueprint,要再考虑一下,先着手完善fantasy部分的功能。
目前要做的几件事。 一个是对热力图进行考虑,数据可能高频访问但不需要实时更新,考虑做一个缓存;考虑到api限制,也考虑查一下能不能从前端发起数据请求,去由客户端ip消耗免费的api调用次数。(优先度低,先考虑对fantasy实现基本功能,并能在线访问) 二是添加单元测试。 三是添加日志。
为即将到来的互动指南的梦幻积分竞猜做准备