v0.3.2 - PDF cache

This commit is contained in:
Xmader 2019-12-01 04:11:40 -05:00
parent eb6c13ce60
commit f8060aaf07
3 changed files with 25 additions and 5 deletions

12
dist/main.js vendored
View file

@ -3,7 +3,7 @@
// @namespace https://www.xmader.com/
// @homepageURL https://github.com/Xmader/musescore-downloader/
// @supportURL https://github.com/Xmader/musescore-downloader/issues
// @version 0.3.1
// @version 0.3.2
// @description 免登录、免 Musescore Pro下载 musescore.com 上的曲谱
// @author Xmader
// @match https://musescore.com/*/*
@ -25973,7 +25973,11 @@ Please pipe the document into a Node stream.\
mixin(ImagesMixin);
mixin(OutputDocumentBrowser);
let pdfBlob;
const generatePDF = (name) => {
if (pdfBlob) {
return FileSaver(pdfBlob, `${name}.pdf`);
}
const scoreImgs = document.querySelectorAll("img[id^=score_]");
const { naturalWidth: width, naturalHeight: height } = scoreImgs[0];
const canvas = document.createElement("canvas");
@ -26002,8 +26006,12 @@ Please pipe the document into a Node stream.\
height,
});
});
// TODO: webworker
// @ts-ignore
return pdf.download(`${name}.pdf`);
return pdf.getBlob().then((blob) => {
pdfBlob = blob;
FileSaver(blob, `${name}.pdf`);
});
};
const getTitle = (scorePlayerData) => {
try {

View file

@ -1,6 +1,6 @@
{
"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 上的曲谱",
"main": "dist/main.js",
"repository": {

View file

@ -4,8 +4,15 @@ import { ScorePlayerData } from "./types"
import { waitForDocumentLoaded } from "./utils"
import PDFDocument from "pdfkit/lib/document"
import saveAs from "file-saver/dist/FileSaver.js"
let pdfBlob: Blob
const generatePDF = (name?: string) => {
if (pdfBlob) {
return saveAs(pdfBlob, `${name}.pdf`)
}
const scoreImgs: NodeListOf<HTMLImageElement> = document.querySelectorAll("img[id^=score_]")
const { naturalWidth: width, naturalHeight: height } = scoreImgs[0]
@ -36,14 +43,19 @@ const generatePDF = (name?: string) => {
imgDataList.forEach((data) => {
pdf.addPage()
pdf.image(data,{
pdf.image(data, {
width,
height,
})
})
// TODO: webworker
// @ts-ignore
return pdf.download(`${name}.pdf`)
return pdf.getBlob().then((blob: Blob) => {
pdfBlob = blob
saveAs(blob, `${name}.pdf`)
})
}
const getTitle = (scorePlayerData: ScorePlayerData) => {