vscode摸鱼学习插件开发

不知道大家在摸鱼的时候,会不会想要学习?

或者有没有考公人,下班要学习的?

上班时间摸鱼,下班时间不够学习?

为此,我决定开发一个vscode插件,来刷粉笔题

粉笔插件名称:Fenbi Tools

vscode扩展可搜索安装

摸鱼插件:Fish Tools

1、展示题库分类

首先实现在侧边栏中展示前20个热搜,没必要太多

1、package.json 增加配置

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视图

typescript 复制代码
 vscode.window.registerWebviewViewProvider("openFenbiWebview", provider)

粉笔分类内容,可以通过调粉笔的接口获取,传递到webview内

typescript 复制代码
const cacheResult = await getCache();
const res = await getCategories()
webview.postMessage({
   command: "init",
   data: modifyArray(res, cacheResult.keypointIds),
 });

到这里,完成情况如图所示,

只有分类当然还是不够的,因为我们需要实际参与做题

2、题目内容

通过vscode扩展与webview 进行消息传递获取数据。具体实现可参考vscode摸鱼插件开发消息传递

typescript 复制代码
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的配置

相关推荐
自信的未来2 小时前
JSON 工具|Web Worker 工程化打包 + 语法自动修复 + 多语言代码生成实战
java·前端·json
SRET2 小时前
Mineradio 沙盒隔离安装完全指南 | 一键安全运行 Electron 应用!!!
javascript·经验分享·安全·electron·aigc·音视频·ai编程
全栈前端老曹2 小时前
【MongoDB】安全与权限管理 —— 用户认证、角色权限、SSL 加密
前端·javascript·数据库·安全·mongodb·nosql·ssl
zhangxingchao3 小时前
AI大模型核心八:从 Agent Skill、长文档 RAG 到知识库更新与训练策略
前端·人工智能·后端
β添砖java3 小时前
2025最新快速构建企业级虚拟专用网络环境学习笔记
笔记·学习
zhangxingchao4 小时前
AI大模型核心七:从 Workflow、RAG、记忆治理到幂等性
前端·人工智能·后端
gyx_这个杀手不太冷静4 小时前
Agent开发进阶指南(第 1 章):AI Agent 到底是什么?
前端·agent·ai编程
小小小小宇5 小时前
模型相关知识
前端
小小小小宇5 小时前
模型相关知识二
前端
IT_陈寒5 小时前
Python装饰器竟然偷偷改了函数名?这个坑我爬了三天
前端·人工智能·后端