Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

战绩查询功能新增筛选, 修复进入大乱斗后再打开软件报错问题 #60

Merged
merged 6 commits into from
Sep 18, 2023

Conversation

Hpero4
Copy link
Contributor

@Hpero4 Hpero4 commented Sep 17, 2023

  1. 修复进入大乱斗后再打开软件报错问题
    相关Issues:
    对局开始后再打开软件"对局信息"页会显示为空 #53 (comment)

  2. 战绩查询添加筛选功能

  3. 重构历史战绩拉取逻辑

TODO 本地化: 详情可见代码内TODO

@Hpero4
Copy link
Contributor Author

Hpero4 commented Sep 17, 2023

TODO 战绩拉取逻辑可优化为提前请求下一页数据, 减少翻页顿挫感

@Hpero4
Copy link
Contributor Author

Hpero4 commented Sep 17, 2023

FIXME 快速切换筛选条件, 会导致闪退, 需要加锁

@Zzaphkiel
Copy link
Owner

感谢 PR!

  1. 其实这个战绩界面的筛选之前我已经考虑过要做了,但是思考一下之后就不打算做了。

一个主要的原因是,没有一个直接针对于某个特定 queueId 的战绩查询接口,所以想要得到将特定模式的对局,只能从全部的对局中筛选;又由于目前的查询界面每一页显示的局数是固定的,所以不可避免的要使用无限循环(比如 while True)来将每一页尽可能填满。我看到代码中为了避免死循环,您使用了一个最大请求次数来限制,但这就造成了如果连着五页没有目标模式,而第六页有,我们的程序却无法将它显示出来,感觉有些不太合适。

这也是生涯界面中做了筛选器而战绩查询界面没有做的原因~

  1. 在之前的查询逻辑中,为了能实现如果没有下一页则让下一页按钮不可用的特性,是采用的提前请求下一页的逻辑。
  2. 在原来的代码中,请求每一页的对局数据时,连个按钮都会被设置为不可用的状态,从 GUI 的角度避免了连续点击~

综上,很抱歉如果战绩界面的筛选没有合理的方式,暂时是不打算实现的;之后有新的功能想法的时候,建议先与我讨论一下😥

@Hpero4
Copy link
Contributor Author

Hpero4 commented Sep 18, 2023

感谢回复, 想跟您确认一下您的想法

  1. 关于"战绩界面的筛选没有合理的方式"是指不遗漏战绩吗? 还是仅能够接受从API层面支持特定queueId查询?
  2. 异步问题可以通过修改代码优化
  3. 连续点击我打算通过定时器来对用户的高频操作进行滤波, 使其调用频率不会过高

后续我会针对您的答复进行修改, 当能够满足项目设计理念时再提pr; 感谢!

@Zzaphkiel
Copy link
Owner

感谢回复!

不遗漏特定模式的战绩在目前提供的 API 上应该是做不到的(除非将目标召唤师所有的对局记录查询一遍),想要筛选只能从全部的对局记录中取出想要的,个人感觉这种方式有些过于“不优雅”了,不知您怎么看?

@Hpero4
Copy link
Contributor Author

Hpero4 commented Sep 18, 2023

将全部战绩查出来筛选的实现方式的确不太优雅. 据我了解目前市面上同类软件对于战绩查询的上限都是以时间为阈值的; 如半年内,一年内;我们同样可以做类似实现, 以保证一定时间范围内的战绩不会被遗漏;

我认为应该不太会有人在意上个赛季中的某一盘游戏, 对此您怎么看? 😉

@Zzaphkiel
Copy link
Owner

在筛选的模式下,将以页数为限制调整为以时间为限制感觉会合理不少,应该是可行的,感谢 😘!

@Zzaphkiel
Copy link
Owner

保证一定时间范围内的战绩不会被遗漏

到时可以在那个筛选的 Flyout 上加入一个提示信息,提示用户筛选的时间范围~

2. 添加异步加载逻辑
@Zzaphkiel
Copy link
Owner

感谢 🥳🥳🥳!

@Zzaphkiel Zzaphkiel merged commit 16b504a into Zzaphkiel:main Sep 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants