当前位置: 首页 > news >正文

vscode摸鱼学习插件开发

不知道大家在摸鱼的时候,会不会想要学习?
或者有没有考公人,下班要学习的?
上班时间摸鱼,下班时间不够学习?

为此,我决定开发一个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的配置

在这里插入图片描述

http://www.lryc.cn/news/474083.html

相关文章:

  • 多线程编程与并发控制缓存策略负载均衡数据库优化
  • Gradio DataFrame分页功能详解:从入门到实战
  • [OPEN SQL] FOR ALL ENTRIES IN
  • 每日互动基于 Apache DolphinScheduler 从容应对ClickHouse 大数据入库瓶颈
  • Chromium127编译指南 Linux篇 - 同步第三方库以及Hooks(六)
  • 在 Android 设备上部署一个 LLM(大语言模型)并通过 Binder 通信提供服务
  • 安科瑞AMB400分布式光纤测温系统解决方案--远程监控、预警,预防电气火灾
  • docker-compose安装rabbitmq 并开启延迟队列和管理面板插件(rabbitmq_delayed_message_exchange)
  • 低功耗蓝牙模块在车联网中的应用
  • Gitee push 文件
  • OpenGL入门004——使用EBO绘制矩形
  • Python中`__str__`和`__repr__`的区别(最清晰解释)
  • Community Enterprise Operating System
  • X (Twitter)养号指南:2024最新攻略
  • ^M 字符处理
  • vxe-table v4.8+ 与 v3.10+ 虚拟滚动支持动态行高,虚拟渲染更快了
  • 【新闻文本分类识别】Python+CNN卷积神经网络算法+深度学习+人工智能+机器学习+文本处理
  • 算法效率的计算
  • 迷茫内耗的一天
  • 【android12】【AHandler】【4.AHandler原理篇ALooper类方法全解】
  • 在canon的生活
  • 萤石设备视频接入平台EasyCVR私有化部署视频平台高速公路视频上云的高效解决方案
  • 如何解决docker镜像下载失败问题
  • Python_PyCharm无法打开终端命令行最终解决方案(实测)
  • 若依-侧边栏开关按钮禁用,侧边栏始终保持展开
  • 洛雪音乐 1.6.1| 全网音乐免费听,附加音源
  • 进程(Process)、线程(Thread)和协程(Coroutine)
  • 蓝牙 BLE 详解
  • Spring 获取Header
  • 第8课 字符串