打开Chrome发现tampermonkey扩展损坏,点了下修复。之后tampermonkey里的脚本全丢了。。。。
Chrome里所谓的的修复居然是重装扩展。。。。。
之前tampermonkey里没开备份,试了各种方法都不行。后来在github中找到了一段js脚本,成功恢复。
记录下恢复过程
原始连接:https://gist.github.com/lamchau/718aa36a6e78c2a744ff017709efcf58
注意:连接中有着三个版本的代码,我只成功运行了第一个。
先决条件:Tampermonkey重装后没有安装任何新的脚本。dhdgffkkebhmkfjojejmpbldmpobfkfo
文件夹中的原始文件还存在。
首先打开C:\Users\<你的帐户>\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\dhdgffkkebhmkfjojejmpbldmpobfkfo
文件夹的结构类似于这种样式
把整个dhdgffkkebhmkfjojejmpbldmpobfkfo
文件夹复制出去,随意保存
配置node环境
去官网下载:https://nodejs.org/zh-cn
或者这里可以选择下载版本:https://nodejs.org/dist/
要下载msi结尾的windows安装包
本次使用的22.16.0 TLS 版本(node-v22.16.0-x64.msi
)
下载完成后安装node.js
一路下一步,windows系统中安装程序会自动配置PATH,默认设置即可。
安装完成后打开CMD,安装level模块
注意:level 模块经历了多次重大的版本更新,而这个脚本是很早以前写的,所以当前的level版本无法运行此脚本,需要安装旧版本
npm install level@5
安装完成
因为安装的是旧版本,所以会有很多警告。无视即可。不想显示这些错误的话安装旧版本node.js即可,例如16.4.0版本。
恢复Tampermonkey脚本
新建一个文档,把脚本粘贴进去。重命名为extract.js
const fs = require('fs');
const path = require('path');
const level = require('level');
const directory = path.resolve(process.argv.length > 2
? process.argv[2]
: 'dhdgffkkebhmkfjojejmpbldmpobfkfo');
const db = level(directory);
const stream = db.createReadStream();
console.log(`Loading: ${directory}`);
const date = new Date().toISOString();
const outputDirectory = path.resolve(
path.join(
__dirname,
date.slice(0, date.indexOf('T'))
)
);
if (!fs.existsSync(outputDirectory)) {
fs.mkdirSync(outputDirectory, true);
}
console.log(`Saving to: ${outputDirectory}`);
stream.on('data', data => {
const { key, value } = data;
try {
if (value.includes('UserScript')) {
const uuid = key.slice(key.indexOf('#') + 1);
const parsed = JSON.parse(value).value;
const filename = path.join(outputDirectory, `${uuid}.user.js`);
fs.writeFile(filename, parsed, () => {
console.log(`Saved: ${path.basename(filename)}`);
});
}
} catch (err) {
}
});
之后用node运行脚本
node extract.js "文件保存路径/dhdgffkkebhmkfjojejmpbldmpobfkfo"
例如,我这里把dhdgffkkebhmkfjojejmpbldmpobfkfo
文件夹复制到了C:\Users\work\Desktop\新建文件夹 (4)\dhdgffkkebhmkfjojejmpbldmpobfkfo
extract.js脚本保存在C:\Users\work\Desktop\新建文件夹 (4)
进入新建文件夹 (4)
,按住Shift键在空白处单击鼠标右键,打开Powershell
输入node extract.js "C:\Users\work\Desktop\新建文件夹 (4)\dhdgffkkebhmkfjojejmpbldmpobfkfo"
之后powershell中会输出如下内容,也会会创建一个以当前日期命名的文件夹
打开后便是恢复的脚本文件。
脚本名字和代码都在,重新安装即可。
之后把所有脚本打包成zip压缩包,在浏览器tampermonkey管理面板——实用工具导入即可。
顺便不要忘记手动备份,即“导出”。