中介做网站的别打电话,大型网站维护费用,站外做deal的网站,wordpress多域名图标不知道大家在摸鱼的时候#xff0c;会不会想要学习#xff1f; 或者有没有考公人#xff0c;下班要学习的#xff1f; 上班时间摸鱼#xff0c;下班时间不够学习#xff1f;
为此#xff0c;我决定开发一个vscode插件#xff0c;来刷粉笔题
粉笔插件名称#xff1a;…不知道大家在摸鱼的时候会不会想要学习 或者有没有考公人下班要学习的 上班时间摸鱼下班时间不够学习
为此我决定开发一个vscode插件来刷粉笔题
粉笔插件名称Fenbi Tools vscode扩展可搜索安装
摸鱼插件Fish Tools
1、展示题库分类
首先实现在侧边栏中展示前20个热搜没必要太多 1、package.json 增加配置
views: {fenbiBar: [{type: webview,id: openFenbiWebview,name: container}]},
viewsContainers: {activitybar: [{id: fenbiBar,title: fenbi,icon: resources/dark/fenbi.svg}]},如此侧边栏就会展示粉笔按钮
按钮有了内容可以通过webview视图展示vscode.window.registerWebviewViewProvider 可以注册webview视图 vscode.window.registerWebviewViewProvider(openFenbiWebview, provider)粉笔分类内容可以通过调粉笔的接口获取传递到webview内
const cacheResult await getCache();
const res await getCategories()
webview.postMessage({command: init,data: modifyArray(res, cacheResult.keypointIds),});到这里完成情况如图所示 只有分类当然还是不够的因为我们需要实际参与做题
2、题目内容
通过vscode扩展与webview 进行消息传递获取数据。具体实现可参考vscode摸鱼插件开发消息传递
let postExerciseId exerciseId;
if (!postExerciseId) {const res await getExercisesId({ keypointId: id });postExerciseId res.id;
}
const exerciseResult await getExercises(postExerciseId);
const questionResult await getQuestion(postExerciseId);webview.postMessage({command: getQuestion,data: {exerciseId: postExerciseId,...questionResult,},
});这里通过分析粉笔网站获取以及webview中的点击事件调用接口不在webview中获取题目内容。通过postMessage 传递到webview
这里分析粉笔网站的答题情况发现每次点击都会触发studyTime接口点击下一题才会触发inc接口提交自己的选项。
3、题目答案
在完成做题并交卷的情况下查看答案是必要的具体实现类似获取题目内容返回字段大多数一致只是增加了solutions数组解析
4、配置
上述只简单概述插件功能配置方面这里增加了cookie的配置