Releases: SocialSisterYi/CxKitty
Releases · SocialSisterYi/CxKitty
0.4.5
Note
- 修复已登录账号改密后重登报错的 BUG
- 使用新版人脸识别提交 API,修复特殊情况下人脸识别重定向页无法通过的 BUG
- 人脸识别提交加入随机像素 LSB 干扰,破坏 hash 风控,实现单张图也能多次验证
- 冷月付费库修复并加入gpt回答设置参数(#87)
- 新增在线题库的搜索器
柠檬题库
,在该处获取 Token https://www.lemtk.xyz (#91) - 修复
Enncy题库搜索器(EnncySearcher)
匹配失败时把报错信息作为答案的 BUG(#94) - 修复带锁树干章节(空章节)解锁失效的 BUG
Changes
- 升级图形验证码识别库 ddddocr 为 1.4.10,支持 Python3.11 环境下使用
- Session 类新增方法
ck_clear()
用于清除当前会话的 Cookie
0.4.4
Note
- 带锁🔒的树干章节也能自动解锁了(实际上什么都不需要提交,根据 Issue 提供的办法只需带着
chapter_id
GET 一个 URL 即可,所以只能加个 magic action 了?)(#74) - 修复第一次作答时,章节任务点总数显示为0的 BUG(#63)
- 新增 Json RestAPI 搜索器
JsonApiSearcher
,即请求体为 JSON,可以在 config.yml 中选配(#72) - 新增几个在线题库的搜索器
题库海
、题库海
、冷月题库
、Muke题库
,可以在 config.yml 中选配(并不推荐首选,因为返回结果可识别性低)(#72) - 将题干及选项中的特殊字符
\xa0
替换为\x20
(空格),而不是直接删除,解决题目中空格丢失导致无法匹配的 BUG - 优化章节作业任务点 Dto 类
PointWorkDto
中解析 Attachment 数据的函数,修复重入作业任务点判定为“无需完成”的 BUG - 考试模式可以跳过“考试承诺确认书”了!(如有填写需求,请在使用本程序前完成提交,因为考试通过后无提交入口)
建议使用 Docker 运行本项目
docker pull socialsisteryi/cx-kitty:latest
0.4.3
Note
- 支持 resolve 人脸识别弹窗,可以随机抽图提交,从
face_image_path
配置的路径中读取 - 登录后自动拉取之前上传的人脸图片,使用
fetch_uploaded_face
字段进行开关,下载保存到face_image_path
配置的路径 - 支持 catch 章节带锁未开放异常(#54)
- 新增过滤试题和作业任务点中的 Unicode 空字符
u+2002
- 修复验证码提交后有概率引发异常的 BUG
- 提升选择题选项匹配相似度阈值
- 修复章节卡片页 Attachment 提取错误(#58)
- 修复课程 meta 接口返回不存在教师名字段引发异常的 BUG(#53)
Changes
- 分解 cxapi 接口模块
__init__.py
到utils.py
- 更名任务点接口模块
jobs
为task_point
- 拆分各任务点 Dto 类公共方法和属性为基类,在
base.py
中的TaskPointBase
,并在各个任务点 Dto 类继承它 - config.py 中各个配置项常量改为 BIG_SNAKE_CASE 命名
- 重写 SessionWraper 类中利用 hook 函数识别特殊页面的实现
V0.4.2
Notes
- 修复作业任务点中 unicode 空字符(
\u200b
、\u300b
)引起的匹配失败 - 解耦视频和文档任务点的 Dto 与业务逻辑,即添加相应的 Resolver 支持
- 更正 typo 并统一命名方式
v0.4.1
Notes
- 修复课程考试整卷预览(导出)时题目与题号分隔异常的 BUG,eg:
1.下面不属于上海灾描述的是11.15特大火:( )
应分隔为下面不属于上海灾描述的是11.15特大火:( )
而不是15特大火:( )
- 自动保存未完成的题目到配置文件定义的
export_path
路径中,以mistakes_${时间戳}.json
命名,eg:mistakes_1688624055.json
,格式为标准 QuestionsExportSchema,type 为 2
Changes
- 答题卡展示组件解耦为
AnswerSheetComp
类 - 各考试接口对象(任何
QAQDtoBase
的继承类)的export()
方法即可传 str 形式的 format,也可以传 Path 形式的路径,以直接导出为 json 文件 - 答题器
QuestionResolver
的自动接管,未完成保存时不需要调用注册的回调函数
v0.4.0
Notes
- 新增考试模式(课程考试)支持,在课程选择界面下输入
EXAM|课程
进入,随即显示二级选择菜单以便选择指定的考试,即可自动答题或批量导出,eg:EXAM|0
、EXAM|"军事理论"
- 优化日志功能,信息更精简
- 试题导出时保存过的答案也可以同时导出了!
- 更改试题导出规范,由多行 json 改为多 json 文件,以题单类型+试题 id 命名,eg:
exam_3726925.json
、work_114514.json
- 答题记录 TUI 表格形式,改为插入第一行,而不是在尾部追加
- 未匹配的题可选使用 fuzzer 方式填充(随机答案)
- 优化账号选择界面姓名打码,修复三字(不含)以上姓名显示错误,eg:
西绕卓玛
应显示为西**玛
,不应显示为西*玛
- 接口请求添加 retry 机制,针对移动网络 / 校园网 / 网络质量不佳的用户优化,防止产生 TCP RST 或 TimeOUT 后抛出
ConnectionAbort
终止整个程序
Changes
- 配置文件中
export_path
字段迁移至根节点,定义改为试题导出文件路径 - 章节测验对象
ChapterExam
解耦为PointWorkDto
与QuestionResolver
,分别对应答题的 ctx 与操作这个 ctx 的执行器,解耦后章节测验与课程考试对象ExamDto
共用这个QuestionResolver
- 将搜索器拆分为多文件,方便更新迭代与管理,eg:
JsonFileSearcher
、RestApiSearcher
、SqliteSearcher
等 - 抽象多搜索器支持为
MultiSearcherWraper
对象 - 验证会话有效后使用函数
set_log_filename()
对全局 log 输出文件进行命名,不需要每次创建 logger 对象都要命名 - 添加用户性别枚举类
AccountSex
- 优化两个内容容器类
ClassContainer
、ChapterContainer
v0.3.0
Notes
- 解决重定向式验证码风控,基于 OpenCV+ddddOCR,全局 hook 了 requests.Session 的
request()
函数,并判断 URL 作为实现方式 - 章节容器类
ClassChapters
增加__rich_console__()
方法,可以直接被 rich 打印,自适应区域尺寸 - 解决视频播放超时 BUG
- 支持章节习题导出,目前只支持多行 JSON 一种格式,使用
export
和export_path
字段配置 - 支持习题
workId
为${schoolId}-${workId}
的特殊情况 - TUI 章节显示部分改为 eg:
2.3.3: (6/9) title
格式 - 修复 TUI 输入选项删除时 Prompt 消失的 BUG
- REST API 搜索器支持上传选项以精确匹配,防止 eg:
以下那个选项错误?
这种题目无法匹配,在 config 中用o_field
指定字段
Changes
- 配置文件
config.yml
字段从 littleCamelCase 改为 snake_case - 搜索器类
SearcherBase
下的接口函数invoke()
改为传题目数据模型QuestionModel
而不是str
,并且将请求字段名req_field
改为q_field
、返回字段名rsp_field
改为a_field
,对于RestApiSearcher
类新增选项字段o_field