feat: playground add submenu

This commit is contained in:
jialin
2024-11-22 10:00:34 +08:00
parent 22f90a505c
commit e05ec3d2d5
22 changed files with 1141 additions and 207 deletions
+29
View File
@@ -0,0 +1,29 @@
import ePub from 'epubjs';
export default function readEpubContent(file: File): Promise<string> {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = function (e: any) {
const arrayBuffer = e.target.result;
const book = ePub(arrayBuffer);
book.loaded?.spine?.then?.((spine: any) => {
const chapterPromises = spine.spineItems?.map?.((chapter: any) => {
return book.load(chapter.href).then((content: any) => {
return content.body?.textContent || '';
});
});
Promise.all(chapterPromises)
.then((chaptersText) => {
const result = chaptersText.join('');
resolve(result);
})
.catch((error) => {
reject(error);
});
});
};
reader.onerror = (error) => reject(error);
reader.readAsArrayBuffer(file);
});
}