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

战绩页面中查看ban位的相关问题 #84

Closed
Yoashika opened this issue Sep 26, 2023 · 7 comments
Closed

战绩页面中查看ban位的相关问题 #84

Yoashika opened this issue Sep 26, 2023 · 7 comments

Comments

@Yoashika
Copy link

Yoashika commented Sep 26, 2023

对应功能

战绩查询页面中的bans

问题描述

在某场战绩页面中首次点击bans(无论是哪方)查看ban位时没有问题,后续再次查看时会弹出以下错误提示:

Traceback (most recent call last):
  File "app\view\search_interface.py", line 404, in <lambda>
  File "qfluentwidgets\components\widgets\flyout.py", line 265, in make
  File "qfluentwidgets\components\widgets\flyout.py", line 213, in __init__
RuntimeError: wrapped C/C++ object of type BansFlyoutView has been deleted

版本

Releases v0.8.1

p.s. 发现这个问题后我尝试使用本地构筑的版本发现问题已经解决了(?)
非常感谢各位开发者的付出🙇‍♂️也希望可以尽早更新打包好的程序😘
另外本地构筑的版本好像在流畅性方面表现不佳...?不知道是不是我环境没有搭建好的缘故
另外就是有时查询某个召唤师战绩调用的api会因为服务器问题而超时,此时生涯页面就会一直转圈,希望可以加个超时判定然后返回自己的生涯页
然后然后......是否可以添加一个查询某位召唤师战绩时显示对方是否在游戏中的状态提示,如果处于游戏中添加一个观战的入口
最后还是再次感谢各位开发者的努力,也希望这个应用可以成为我学习的一座桥梁(来自一个在cs专业混了整个大学生涯代码能力为0想要作出改变的菜鸡的怨念😭)

@Zzaphkiel
Copy link
Owner

感谢反馈~

后续再次查看时会弹出以下错误提示

空引用报错是因为 PyQt-Fluent-Widgets 在最新的 1.2.0 版本为了修复它之前的内存泄露问题,在调用弹出函数后默认关闭时会将 Flyout 实例析构掉,需要在原来使用的弹出函数中传入一个新的参数来避免被析构(仓库中的代码已经修改过了),在当时发布 Release 的时候忘记修改了,所以导致了只在打包好的程序中会报错 😥

好像在流畅性方面表现不佳

在数据并发加载时我也会卡卡的,应该不是个性问题

加个超时判定然后返回自己的生涯页

目前 API 调用相关的代码是 @Hpero4 在做,能不能实现可能需要等待他来解答一下~

查询某位召唤师战绩时显示对方是否在游戏中的状态

这个可能是做不到的,LCU API 应该是没有提供相关功能 🥺

P.S. 写代码的时候我的想法是能跑就行,所以可能仓库里我的代码都挺烂的,谨慎学习不要被带偏哈

@Hpero4
Copy link
Contributor

Hpero4 commented Sep 27, 2023

@Yoashika 您好, 感谢反馈!

  1. 流畅度问题
    -> 想了解一下您提到的"流畅度"问题, 是指软件占用资源过高导致其他程序运行缓慢? 还是指软件本身出现响应慢、卡顿的问题?

  2. 查询超时
    -> 想具体了解一下您的操作手顺, 软件是否有错误提示? 不排除服务器异常返回(如无Games字段), 导致软件抛出未捕获的异常, 届时所有请求都会无法响应, 甚至出现无法退出等现象, 不知道是不是您说的"一直转圈". 这个问题后续会想办法解决.

@Yoashika
Copy link
Author

感谢开发人员的回复🙇‍♂️
@Hpero4 以下是我对问题的补充

  1. 流畅度问题
    -> 想了解一下您提到的"流畅度"问题, 是指软件占用资源过高导致其他程序运行缓慢? 还是指软件本身出现响应慢、卡顿的问题?

指软件本身的卡顿现象。比如在首次查询某位玩家的生涯页面时较为卡顿,且偶尔会出现短暂的无响应情况,在历史战绩页面切换不同场次时卡顿更为明显。但是在目前发行的v0.8.1版本上没有出现这样的问题。

  1. 查询超时
    -> 想具体了解一下您的操作手顺, 软件是否有错误提示? 不排除服务器异常返回(如无Games字段), 导致软件抛出未捕获的异常, 届时所有请求都会无法响应, 甚至出现无法退出等现象, 不知道是不是您说的"一直转圈". 这个问题后续会想办法解决.

操作顺序:在战绩查询页面中,点击某场次战绩中除自己外的任意一位玩家,跳转至该名玩家的生涯页面,此时生涯页面持续转圈,且搜索召唤师🔍功能无响应,同时由于生涯页面一直转圈而无法使用回到我回到自己的生涯页面。
在目前发行的v0.8.1版本上是没有错误提示的,使用仓库中的代码本地构建会提示api调用异常。这应该是官方服务器在更新前后的异常并非软件问题,目前服务器正常的情况下无法复现。我希望是能在出现异常时对软件的表现进行优化,超时后返回一个页面(并非一定要返回自己的生涯页)。一直转圈的观感不是很好😵‍💫

@Hpero4
Copy link
Contributor

Hpero4 commented Sep 27, 2023

您好,

关于您提到的流畅度问题, 我在目前的测试中没有太明显的感觉, 将在后续尝试复现并进行优化, 但不一定能解决(至少它不应该导致程序未响应). 我目前能想到的还是异步加载历史战绩列表所带来的其他请求响应时间变长, 具体卡顿出现在请求时还是渲染时仍有待排查

关于查询超时问题, 此前我已经发布了一些针对服务器异常时导致无限加载的修复代码 #76 , 但从其他页面跳转到"生涯"页的逻辑中, 该改动被遗漏, 后续会推送代码修复; (修复后生涯页历史战绩会显示为空, KDA等会显示为None, 其余正常);

关于您提到的"搜索召唤师"和"回到我"无响应, 根因是在上述状态下, API请求的connect抛出了一个未捕获的异常(控制台可见), 导致后续逻辑无法正常执行.

此处抛出异常:

if "games" not in res:
raise SummonerGamesNotFound()

应在此处捕获:

gamesInfo = connector.getSummonerGamesByPuuid(
summoner.puuid, 0, cfg.get(cfg.careerGamesNumber) - 1)

gamesInfo = connector.getSummonerGamesByPuuid(
summoner.puuid, 0, cfg.get(cfg.careerGamesNumber) - 1)

@Hpero4
Copy link
Contributor

Hpero4 commented Sep 27, 2023

@Yoashika 😢 很抱歉, 我未能复现出您所提到的“未响应”问题, 或许您可以等 #86 合入后更新代码再试试, 同时这次提交也优化了战绩查询页的详情部分(右半边)的加载速度.

此外, 我从 @Zzaphkiel 了解到, 战绩查询页的详情部分(右半边)的加载速度与“在详情中显示段位”这一设置有一定关联, 您可以对比一下v0.8.1和您本地构建的程序中, 该选项是否打开.

@Yoashika
Copy link
Author

@Hpero4 感谢测试🙇‍♂️
v0.8.1和我本地构建的程序设置完全一样,也许性能表现不佳是由于运行环境、电脑配置等多方面个人原因所致。希望有更多人可以参与测试反馈吧😴

@Yoashika
Copy link
Author

今天更新了下本地代码后发现流畅性问题已经没有了,软件运行很流畅,暂时还没有碰到bug。

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

No branches or pull requests

3 participants