// ==UserScript==
// @name keledge-helper
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 可知网导出页面到PDF,仅对PDF预览有效
// @author 2690874578@qq.com
// @match https://www.keledge.com/pdfReader?*
// @require https://cdn.staticfile.org/pdf-lib/1.17.1/pdf-lib.min.js
// @icon https://www.google.com/s2/favicons?sz=64&domain=keledge.com
// @grant none
// @run-at document-start
// @license GPL-3.0-only
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
// 全局常量
const GUI = `
keledge-helper
`;
// 全局变量
window.pdf_data_list = [];
window.log = console.log.bind(console);
window.error = console.error.bind(console);
/**
* @param {number} delay
*/
function sleep(delay) {
return new Promise(resolve => setTimeout(resolve, delay));
}
async function wait_for_pdfjs() {
while (!window.pdfjsLib) {
await sleep(200);
}
}
function hooked_get_doc(pdf_data) {
pdf_data_list.push(pdf_data.data);
log(`page collected: ${pdf_data_list.length}`);
return getDocument(pdf_data);
}
function hook_pdfjs() {
window.getDocument = pdfjsLib.getDocument.bind(pdfjsLib);
pdfjsLib.getDocument = hooked_get_doc;
}
/**
* 加载CDN脚本
* @param {string} url
*/
async function load_web_script(url) {
try {
// xhr+eval方式
const resp = await fetch(url);
const code = await resp.text();
Function(code)();
} catch(e) {
error(e);
// 嵌入