vscode摸鱼学习插件开发

server/2024/11/13 3:30:38/

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

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

粉笔插件名称:Fenbi Tools
vscode扩展可搜索安装

摸鱼插件:Fish Tools

1、展示题库分类

首先实现在侧边栏中展示题库分类
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的配置

在这里插入图片描述

5、cookie 获取

注意,插件需要获取设置cookie才能使用,以下是示例,未截全,实际使用需要全部复制粘题!
在这里插入图片描述


http://www.ppmy.cn/server/140788.html

相关文章

docker 常用方法

目录 docker参数解释 基础信息和环境变量设置 容器运行和管理相关参数 数据卷挂载 GPU 相关参数 镜像相关参数 查看现有的镜像 docker images 查看正在运行的docker docker ps 1、docker启动停止及查看状态 启动docker: systemctl start docker 停止docker…

linux 内核asmlinkage关键字总结

1,看一下asmlinkage的定义 CPP_ASMLINKAGE __attribute__((regparm(0))) GCC中使用__attribute__((regparm(n)))指定最多可以使用n个寄存器(eax, edx, ecx)传递参数,n的范围是0~3,超过n时则将参数压入栈中(…

论文阅读《Structure-from-Motion Revisited》

摘要 增量式地运动结构恢复是从无序图像集合中进行三维重建的一个普遍策略。虽然增量式地重建系统在各个方面上都取得了巨大的进步,但鲁棒性、准确性、完整度和尺度仍然是构建真正通用管道的关键问题。我们提出了一种新的运动结构恢复技术,它改进了目前…

`psdparse`:解锁Photoshop PSD文件的Python密钥

文章目录 psdparse:解锁Photoshop PSD文件的Python密钥背景:为何选择psdparse?psdparse是什么?如何安装psdparse?简单函数使用方法应用场景常见Bug及解决方案总结 psdparse:解锁Photoshop PSD文件的Python密…

Git超详细教程

Git初始 概念 一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码 作用 记录代码内容,,切换代码版本,多人开发时高效合并代码内容 如何学: 个人本机使用:Git基础命令和概念 多…

【Windows】Android Studio 上cmd 换为Powershell 终端

最近在Windows 环境下Android Studio 的Terminal 终端,低版本默认用的是cmd.exe,好多linux 命令不支持,有时候一不小心就记忆错了;干脆直接换成Windows PowerShell 得了。 下载Powershell:https://aka.ms/PSWindows 选…

BP 网络的标准学习算法及其实现

BP 网络的标准学习算法及其实现 一、引言 BP(Back Propagation)神经网络是一种广泛应用于机器学习和人工智能领域的神经网络模型。它通过反向传播算法来调整网络的权重,以最小化预测输出和实际输出之间的误差。BP 网络的标准学习算法对于理…

git 多账号配置

windows下git多账号配置详解_git配置多个用户名和密码-CSDN博客 windows下git多账号配置详解_git配置多个用户名和密码-CSDN博客 windows下git多账号配置详解_git配置多个用户名和密码-CSDN博客