Releases: Samera2022/DesktopHelper
Releases · Samera2022/DesktopHelper
v0.0.5.3
0.0.5.2
- [Released] - [0.0.5.2] - 2024-11-10 14:24
[Added]
- 增加了Quiz中累计答对五次自动不再考察该题的逻辑。
- 优化了Quiz start的相关指令信息,增加了指令的默认参数。
- 支持自定义背景了!由config.cfg中的enable_characterization(boolean)和bg_path(String)来决定。
(注:frame指令所创建的窗体暂还未进行支持适配) - 支持深色模式了!由config.cfg中的dark_mode(boolean)来决定。
[Changed]
- 修正了先前输入框内默认文字不清除的问题。
- 修复了一些logger记录顺序的小问题。
- 压缩了Logger输出中的ClassName,将module及module之前的内容用...代过。
- 修正了Quiz中使用list指令误将文件夹和其他文件一起识别的相关逻辑,同时quiz文件后缀名更改为qiz。
- 修复了窗体组件位置的bug叠bug的问题。之前ver0.0.5.1的时候侥幸有两个bug叠在一起才导致窗体正常显示,这次把两个bug都修了。
[bug发生的原因:既使用了默认布局管理器(自上而下,自左而右),又填写了错误的绝对窗体坐标。恰巧本来错误的绝对窗体坐标被默认布局管理器压制了,才导致组件显示才维持正常。]
0.0.5.1
- [Released] - [0.0.5.1] - 2024-06-10 21:03
[Added]
- 添加了version指令。
- 添加高考倒计时功能。
[Usage]
version指令
- "version list" 列出该程序的所有历史版号。
- "version show" 从历史版号中按序号读取更新日志信息。
[Warns]
- 由于倒计时的加入,Panel的大小和位置大多都发生了改变。如要查询历史版本,则需回到v0.0.5版本。
- 剩余未开发的功能与bug将会被封存,直至下一次重新激活。
0.0.5
- [Released] - [0.0.5] - 2024-05-26 21:50
[Changed]
- 修正了Logger的相关逻辑,使之可以正常使用。
[Added]
- 添加了原先的notification指令,并设法使其兼容新版代码。
- 添加并重写了原先的颜色系统,使之升级为字体系统,目前其支持的组件仍为notification系统。
[Usage]
notification指令
- "notification add " 其中,index为可填项,content为必填项。content的格式要求为{,,}或{} 执行该指令后将会将指定提示插入目标行数(如果填写了index)或直接添加到末尾一行(如果未填写index)。
- "notification remove " 执行该指令后将会将指定目标行数的提示移除。
- "notification finished " 执行该指令后将会把目标行数的提示切换至完成状态。
- "notification unfinished " 执行该指令后将会把目标行数的提示切换至未完成状态。
字体系统
- 字体系统目前适用于notification系统。使用格式为[&&...],比如:[&XA&XB]
- 目前支持绝大多数Font的参数,已支持的参数对应表如下所示:
[&FF(fontFamily)]调整字体 [&FS]调整字号 [&XA]粗体 [&XB]斜体 [&XC]下划线 [&XD]删除线 [&XE]上标 [&XF]下标 [&CF]字体颜色 [&CB]背景颜色 [&SA]段落上方留空大小 [&SB]段落下方留空大小 [&FL]首行缩进 [&LI]段落左缩进 [&RI]段落右缩进 [&LS]行间距 - 特别地,对于[&CF]和[&CB]两个与颜色相关的参数,使用时应当传入色彩信息[&CF(,,)],比如:[&CF(0,0,0)]。
0.0.4.3
- [Released] - [0.0.4.3] - 2024-05-05 15:00
[Changed]
- 修改了quiz的一些逻辑,使其更加符合使用需要。
[Added]
- 增加AminoAcidQuiz指令。
- quiz start 指令增加四级,五级指令。
[Usage]
quiz start 指令
- "quiz start " 该指令新增和参数。
其中,isBreak参数可选stop或continue,分别对应回答错误即停止和回答错误仍继续。
useSimilarity旨在应对具有小范围开放性的填空,使用一定的相似算法来判断所填入的答案与预设答案是否相关。
AminoAcidQuiz指令
- "AminoAcidQuiz plain " 执行该指令后将会启动AminoAcidQuiz普通测试。
- "AminoAcidQuiz structure " 执行该指令后将会启动AminoAcidQuiz结构式测试。
[To-do]
- 现在有支持显示图片的窗体了,之后或许可以考虑将其整合进Quiz中,实现循环滚大题的操作。
- Quiz之后应当考虑出题算法,使答对次数多的题目减少出现,答对次数少或出现次数少的题目增多出现。
- Quiz应当考虑多道题目共用一道大题干的情况,等到多道题目轮流答题完成再滚下一个大题或小题。目前思路如下:
显示一道大题题干,再显示一个输入窗体。键入第一小题的答案后,出现第二小题的输入窗体......直到所有小题答题结束,再统一对答案进行评价打分。 - label指令加入待办列表。
[Warns]
- "quiz start " 指令中的默认改为false,因为相似算法仍然一定存在问题。
- "AminoAcidQuiz structure " 指令依赖于.../quizzes/resources/amino_acids/下的图片来完成。
0.0.4.2
- [Released] - [0.0.4.2] - 2024-02-20 13:22
[Changed]
- 完善了mainFrame.ExceptionHandler()方法,但并未进行相关测试。
- web包更名为gpt包,原web包下HttpURLConnection.java更名为Connection.java
[Added]
- 增加analyze指令。
- 增加downloadModpack指令。
[Usage]
downloadModpack指令
- "downloadModpack key " 执行该指令后将会从zipPath所指向的文件进行模组补全下载,保存至targetPath。同时将配置等文件夹解压至targetPath中。请注意:key下载需要提供curseforge_api_key,即cf_api_key。配置在config.cfg中填入。
- "downloadModpack browser " 执行该指令后将会从zipPath所指向的文件进行浏览器模组补全下载,该操作不需要提供curseforge_api_key。目前没有设置配置等文件的解压,因为涉及不同浏览器的保存地址,所以暂时不做相关处理。
analyze指令
- "analyze " 执行该指令后将会读取报错日志,并从已设置的报错内容特征进行检索。目前仅支持一小部分报错分析,更多分析请等待后续版本。
[To-do]
- 考虑添加依赖缺失报错的模组下载处理逻辑。
- 或许应当考虑将关于mc的指令全部放在一级指令mc下面?
[Warns]
- Logger的线程提示有问题,需要解决!
0.0.4.1
- [Released] - [0.0.4.1] - 2024-02-08 18:44
[Changed]
- Command注解已被简化,仅留下name()属性。
- 完善openai指令,将认证KEY等配置分离至config/gpt/default.json。
[Added]
- 添加日志处理系统Logger。
- 添加配置Config,以config/config.cfg的格式输出。目前支持的内容有:是否将执行的指令再次输出至输出框(command_output)
- 添加exit指令。
- 添加clear指令。
- 添加config指令。目前支持的二级指令参数有:reload。用法见Usage。
[Usage]
config指令
- "config reload" 执行该指令后将会重载config.cfg。
0.0.4
- [Released] - [0.0.4] - 2024-01-27 19:20
[Changed]&&[Description]
Structure
- 注册指令变更。注册指令不再使用output(new Mixture[]{Mixture<>(String, Style)...}, Boolean);语句,转而使用formatter(Boolean,Mixture<>(String, Style)...);语句。相较于原先语句该语句能够较好的结合数组和泛型,借助可变参数方法将抽象的数组cast为泛型数组调用output进行输出,再利用SafeVarargs注解消除编译器对formatter方法的警告。简而言之,就是利用formatter方法对output方法进行了一定程度的封装。
- 指令参数变更。指令参数由原先的Mixture<Boolean,ArrayList>改为ArrayList,毕竟原先这个类型确实长得比较离谱......直接粗暴地把delete(Boolean)和指令本体结合起来,确实不太好。而且delete原本是Command注解里面的参数,再在方法的参数里面出现就太冗杂了。或许我可以在output或者formatter的方法里面直接反射获取目标方法的注解,然后得到delete参数?这样就不需要在方法多个if分支里面重复写false或者true了,其实本来也可以直接在方法体里写一个新的boolean delete声明,但是这样的话再调用delete的时候编译器老是会提示,就让人看得比较烦。
- 总线升级!已省去Command注解中的delete()和hasTextOutput()的使用,转为在CommandHeads相应指令的方法体中直接调用formatter()方法填入相应参数。
- 修正fuzzyMatcher方法,更正了该方法的逻辑。
Commands
- 修正delete指令。
[Added]&&[Description]
- 增加quiz指令。目前支持的二级指令参数有:create,start,delete,list。用法详见Usage。
- 增加frame指令。目前支持的二级指令参数有:broaden,close,dispose。用法详见Usage。
- 增加openai指令(需要联网)。目前仅支持单一对话询问,存在阻塞风险!
注:阻塞风险是指在执行该指令后,整个程序会陷入阻塞状态,等待请求结果。由于程序的逻辑特点,这个问题几乎无法避免。
[Usage]
quiz指令
- 概述:quiz指令是一种用于测试(examine)的指令,可以用于新建、追加、删除测试,或者列出本机上已有的全部测试内容。为简化叙述,下文中即为你所希望操作的测试的名称,
- "quiz create " 执行该指令后将会在本机新建一个名为的测试。若该测试已存在,则会询问是否覆盖该测试。选Yes会复写原有测试,选No会在原有测试上追加,关闭窗体则会取消新建操作。
- "quiz start " 执行该指令后将会尝试在本机查找名为的测试并启动。
- "quiz delete " 执行该指令后将会删除本机上名为的测试,并且无法找回。
- "quiz list" 执行该指令后将会列出本机上可用的所有测试。
frame指令
- 概述:frame指令是用于操作拓展窗体行为的指令。其中拓展窗体并不是主程序所对应的mainFrame,而是用于辅助显示的拓展大屏幕。其中,这个大屏幕与主程序共享dsdFileContent(DefaultStyledDocument),基本相当于与主程序共享负责文件读取与操作输出的中间组件。
- "frame broaden" 执行该指令后将会让拓展窗体变得可见。
- "frame close" 执行该指令后将会让拓展窗体变得不可见。但是通常情况下可以使用dispose来代替。
- "frame dispose" 执行该指令后将会关闭拓展窗体,并释放一部分资源。
openai指令
- "openai " 执行该指令后将会联网请求openai模型的内容,并等待回复。目前仅支持单一对话询问。
pre0.0.4
- [Released] - [pre0.0.4] - 2023-09-03 16:48
[Changed]&&[Descriptions]
- 总线更改完成!目前总线仅搭载print指令,故本版本尚为测试版本。总线更改完成后,可以在CommandHeads中使用Command注解,同时填入必要的name参数,选填delete与hasTextOutput参数即可完成指令的注册。故Info中已移除ArrayList COMMANDS,待Notification与其二级指令完成迁移后同时也会删除ArrayList NOTIFICATION_COMMANDS。
- 总线信息传递大致如下:EnterKeyListener.java监听到输入框输入后调用EventBus.java的register方法,register方法将命令综合处理完成后传入CommandHandler.java中的handleCommand方法,handleCommand方法先对其进行模糊匹配,模糊匹配完成后将直接调用位于CommandHeads的该方法。
- 对0.0.3.1更新日期做出修正:模糊匹配机制于2023-08-26 09:58推出,而ChemistryQuiz则更早完成,但加入时间不详(晚于模糊匹配机制)。故v0.0.3.1沿用模糊匹配机制的完成时间,即2023-08-26 09:58。
[Warns]
- 潜在的危险:在EnterKeyListener.java中,为实现按下回车键后光标仍能恢复到第一行最前面的位置(因为EnterKeyListener.java的keyPressed所能实现的功能皆在enter引发换行之前,所以只能在keyReleased进行调正)采用了isCommand进行判断进而删除dsd前面的内容。而使用isCommand未经过严谨的考量,可能存在一些意想不到的问题。
0.0.3.1
- [Released] - [0.0.3] - 2023-09-02 13:45
[Added]
- 增加模糊匹配机制!简化指令输入的时间,现在你只需要大概打出指令前几个字母就可以调用!
- 增加gadgets包(小工具包),可以向其中加入各种各样的小功能小工具!目前已加入ChemistryQuiz轨道表达式小测试!
[Descriptions]
- 即将进行大规模底层逻辑重写,将会把该工程推送至v0.0.3.1分支保存!
- 工程将会由Listener+switch的结构转为总线注册总线监听结构!