zhongxinghong / PKUAutoElective

北大选课网补退选阶段自动选课小工具
MIT License
664 stars 235 forks source link

只有在`补退选`标签下`选课计划中本学期可选列表`第一页的课程可以被选到,在第二页及以后页的课程` not in your course plan` #54

Closed CanfengMenghan closed 3 years ago

CanfengMenghan commented 3 years ago

Check List

Version / Environment

System infomation: [ ] (Windows10 64bit) Python version: [ ] (3.6.6) AutoElective version: [ ] (4.0.1 )

Config

[course:1]

name=社会心理学 class=2 school=光华管理学院

Issue Description

What

只有在补退选标签下选课计划中本学期可选列表第一页的课程可以被选到,在第二页及以后页的课程not in your course plan 这个课程在选课计划标签的第一页。

Console Log

必要的终端输出信息

Reproduce

File "C:\Users\me\Downloads\PKUAutoElective-master\autoelective\loop.py", line 393, in run_elective_loop raise UserInputException("%s is not in your course plan, please check your config." % c) autoelective.exceptions.UserInputException: Course(社会心理学, 2, 光华管理学院) is not in your course plan, please check your config.

如有必要,提供复现的步骤

Psalmi23187 commented 3 years ago

不妨试试改一改页码,我第三页的课改成第二页就好啦

AcreixYuan commented 3 years ago

不妨试试改一改页码,我第三页的课改成第二页就好啦

怎么能把第三页的课改成第二页呢? 而且我第二页第三页的课都没法选...

Psalmi23187 commented 3 years ago

不妨试试改一改页码,我第三页的课改成第二页就好啦

怎么能把第三页的课改成第二页呢? 而且我第二页第三页的课都没法选...

啊我是改了supply_cancel_page那个页码

tim4431 commented 3 years ago

但是第三页以后的课好像都没法通过修改supply_cancel_page获取

zhongxinghong commented 3 years ago

elective.pyget_supplement 函数中发请求的代码改成下面这样就行了,选课网小改了一下接口

        r = self._get(
            url=ElectiveURL.Supplement,
            params={
                "netui_pagesize": "electableListGrid;20",
                "netui_row": "electableListGrid;%s" % ( (page - 1) * 20 ),
            },
            headers=headers,
            hooks=_hooks_check_title,
            **kwargs,
        )
yingno commented 3 years ago

elective.pyget_supplement 函数中发请求的代码改成下面这样就行了,选课网小改了一下接口

        r = self._get(
            url=ElectiveURL.Supplement,
            params={
                "netui_pagesize": "electableListGrid;20",
                "netui_row": "electableListGrid;%s" % ( (page - 1) * 20 ),
            },
            headers=headers,
            hooks=_hooks_check_title,
            **kwargs,
        )

用了新的PKUElective2021Spring-main,好像还是有这个问题,第2页的课程提示not in your course plan

zhongxinghong commented 3 years ago

@yingno 你用的是它的最新版本吗?上面这个补丁是我自己调试出来的,和它的补丁方法一样的,唯一的区别是它多发了一个无效的 conflictCourse 字段,但我觉得这并不会产生影响

我怀疑是因为你写错课程信息了,或者是你没有改配置文件里的 supply_cancel_page,导致一直刷新的是第1页的课程,建议你还是再核对一下看看

yingno commented 3 years ago

用的是新版,但是没有改supply_cancel_page,新版的说明好像没有写?但是我现在手动选上了也没机会再试了233

zhongxinghong commented 3 years ago

新版引用了我写的 README,你要用的话,应该先仔细先看一下说明 ...... 没有改 supply_cancel_page 的话,找不到课就属于意料之中的事情,没必要再试了 :)