v0.3.2 - PDF cache
This commit is contained in:
parent
eb6c13ce60
commit
f8060aaf07
3 changed files with 25 additions and 5 deletions
12
dist/main.js
vendored
12
dist/main.js
vendored
|
@ -3,7 +3,7 @@
|
||||||
// @namespace https://www.xmader.com/
|
// @namespace https://www.xmader.com/
|
||||||
// @homepageURL https://github.com/Xmader/musescore-downloader/
|
// @homepageURL https://github.com/Xmader/musescore-downloader/
|
||||||
// @supportURL https://github.com/Xmader/musescore-downloader/issues
|
// @supportURL https://github.com/Xmader/musescore-downloader/issues
|
||||||
// @version 0.3.1
|
// @version 0.3.2
|
||||||
// @description 免登录、免 Musescore Pro,下载 musescore.com 上的曲谱
|
// @description 免登录、免 Musescore Pro,下载 musescore.com 上的曲谱
|
||||||
// @author Xmader
|
// @author Xmader
|
||||||
// @match https://musescore.com/*/*
|
// @match https://musescore.com/*/*
|
||||||
|
@ -25973,7 +25973,11 @@ Please pipe the document into a Node stream.\
|
||||||
mixin(ImagesMixin);
|
mixin(ImagesMixin);
|
||||||
mixin(OutputDocumentBrowser);
|
mixin(OutputDocumentBrowser);
|
||||||
|
|
||||||
|
let pdfBlob;
|
||||||
const generatePDF = (name) => {
|
const generatePDF = (name) => {
|
||||||
|
if (pdfBlob) {
|
||||||
|
return FileSaver(pdfBlob, `${name}.pdf`);
|
||||||
|
}
|
||||||
const scoreImgs = document.querySelectorAll("img[id^=score_]");
|
const scoreImgs = document.querySelectorAll("img[id^=score_]");
|
||||||
const { naturalWidth: width, naturalHeight: height } = scoreImgs[0];
|
const { naturalWidth: width, naturalHeight: height } = scoreImgs[0];
|
||||||
const canvas = document.createElement("canvas");
|
const canvas = document.createElement("canvas");
|
||||||
|
@ -26002,8 +26006,12 @@ Please pipe the document into a Node stream.\
|
||||||
height,
|
height,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
// TODO: webworker
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
return pdf.download(`${name}.pdf`);
|
return pdf.getBlob().then((blob) => {
|
||||||
|
pdfBlob = blob;
|
||||||
|
FileSaver(blob, `${name}.pdf`);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
const getTitle = (scorePlayerData) => {
|
const getTitle = (scorePlayerData) => {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "musescore-downloader",
|
"name": "musescore-downloader",
|
||||||
"version": "0.3.1",
|
"version": "0.3.2",
|
||||||
"description": "download sheet music from musescore.com for free, no login or Musescore Pro required | 免登录、免 Musescore Pro,免费下载 musescore.com 上的曲谱",
|
"description": "download sheet music from musescore.com for free, no login or Musescore Pro required | 免登录、免 Musescore Pro,免费下载 musescore.com 上的曲谱",
|
||||||
"main": "dist/main.js",
|
"main": "dist/main.js",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
14
src/main.ts
14
src/main.ts
|
@ -4,8 +4,15 @@ import { ScorePlayerData } from "./types"
|
||||||
import { waitForDocumentLoaded } from "./utils"
|
import { waitForDocumentLoaded } from "./utils"
|
||||||
|
|
||||||
import PDFDocument from "pdfkit/lib/document"
|
import PDFDocument from "pdfkit/lib/document"
|
||||||
|
import saveAs from "file-saver/dist/FileSaver.js"
|
||||||
|
|
||||||
|
let pdfBlob: Blob
|
||||||
|
|
||||||
const generatePDF = (name?: string) => {
|
const generatePDF = (name?: string) => {
|
||||||
|
if (pdfBlob) {
|
||||||
|
return saveAs(pdfBlob, `${name}.pdf`)
|
||||||
|
}
|
||||||
|
|
||||||
const scoreImgs: NodeListOf<HTMLImageElement> = document.querySelectorAll("img[id^=score_]")
|
const scoreImgs: NodeListOf<HTMLImageElement> = document.querySelectorAll("img[id^=score_]")
|
||||||
|
|
||||||
const { naturalWidth: width, naturalHeight: height } = scoreImgs[0]
|
const { naturalWidth: width, naturalHeight: height } = scoreImgs[0]
|
||||||
|
@ -42,8 +49,13 @@ const generatePDF = (name?: string) => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// TODO: webworker
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
return pdf.download(`${name}.pdf`)
|
return pdf.getBlob().then((blob: Blob) => {
|
||||||
|
pdfBlob = blob
|
||||||
|
saveAs(blob, `${name}.pdf`)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const getTitle = (scorePlayerData: ScorePlayerData) => {
|
const getTitle = (scorePlayerData: ScorePlayerData) => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue