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

程序报错,官方把tag paths的接口改了 #11

Closed
Doushabao233 opened this issue Aug 18, 2024 · 1 comment
Closed

程序报错,官方把tag paths的接口改了 #11

Doushabao233 opened this issue Aug 18, 2024 · 1 comment
Assignees
Labels
漏洞/bug Something isn't working good first issue Good for newcomers 解析/parsing

Comments

@Doushabao233
Copy link
Contributor

Doushabao233 commented Aug 18, 2024

今天想下载课本,打开软件发现提示 网络连接异常,由于我是这个项目的贡献者,懂一点代码,于是下载了2.0版本的源代码文件,进行debug,最后发现问题在这行代码

image

我翻了上面的代码,发现到这行代码的时候,他要爬取一个tag_paths里面的字符串,并且分割开,这个我猜最后会用在GUI界面底部选择“年级”“几年级的上、下册”的下拉框中。但是现在获取到的数据里面全是一些随机的英文字母,不知道是哈希还是Base64。

image

image

幸运的是,旧版软件没有这个一键下载的功能,虽然麻烦,但是因为足够原始,所以这个程序依然可以打开,并且经过我的测试,旧版可以正常下载PDF,这更加印证了我前面说的“tag_paths代表的是书籍分门别类的关系,最后会显示在GUI底部”:

image

这是我浅显的理解,不太准确,希望能确认一下并且修复

修复方法也很简单,可以不从网上爬层级顺序,可以硬编码在程序里,也可以解密一下这个加密的字符串,再不济可以直接砍了[doge]

@wuziqian211 wuziqian211 self-assigned this Aug 18, 2024
@wuziqian211 wuziqian211 added 漏洞/bug Something isn't working good first issue Good for newcomers labels Aug 18, 2024
@wuziqian211
Copy link
Collaborator

wuziqian211 commented Aug 18, 2024

感谢您的反馈~

但是该问题出现的原因不是数据经过了加密,国家智慧中小学教育平台的后端接口返回的 tag_paths 一直都是这个格式,并且 tag_paths 中的 path 在本程序中也仅用作每个分类的标识符,不会显示在 GUI 里😂

该问题出现的实际原因,其实是本程序在刚启动时就开始获取资料的分类信息了,而有些资料的 tag_paths 为空数组,这就导致您发的图 1 中的代码在获取 i["tag_paths"][0] 时由于索引超出范围而报错;又因为我们在编写这部分的异常处理代码时,我们认为只有网络错误才会抛出异常,所以我们在 except 部分的错误提示中只写了 “网络错误”,并且直接关闭了此程序,误导了使用者们😂

该问题将在 v2.1 版本中修复。

wuziqian211 added a commit that referenced this issue Aug 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
漏洞/bug Something isn't working good first issue Good for newcomers 解析/parsing
Projects
None yet
Development

No branches or pull requests

2 participants