From 40fc3632aa566dc3a2f48db643a83e2a61fe6fc0 Mon Sep 17 00:00:00 2001 From: troyeguo <13820674+troyeguo@users.noreply.github.com> Date: Sun, 31 Jul 2022 14:15:14 +0800 Subject: [PATCH] fix bug Former-commit-id: 86d55a177e16128b2c8d6403b4c707f22ba040d8 --- package.json | 8 +-- .../dialogs/deleteDialog/component.tsx | 5 -- src/utils/readUtils/sortUtil.tsx | 2 +- src/utils/serviceUtils/bingTTS.tsx | 59 +++++++++++++++++++ 4 files changed, 64 insertions(+), 10 deletions(-) create mode 100644 src/utils/serviceUtils/bingTTS.tsx diff --git a/package.json b/package.json index 2a149367..d8663c7b 100644 --- a/package.json +++ b/package.json @@ -14,11 +14,8 @@ "repository": "https://github.com/troyeguo/koodo-reader", "private": false, "dependencies": { - "@types/i18next": "^13.0.0", - "@vitalets/google-translate-api": "^8.0.0", "adm-zip": "^0.5.2", "axios": "^0.19.2", - "bing-translate-api": "^2.6.0", "chardet": "^1.3.0", "chinese-s2t": "^1.0.0", "copy-text-to-clipboard": "^2.2.0", @@ -27,7 +24,6 @@ "electron-store": "^8.0.1", "font-list": "^1.4.5", "fs-extra": "^9.1.0", - "http2": "^3.3.7", "iconv-lite": "^0.6.2", "macaddress": "^0.5.2", "react-hot-toast": "^2.1.1", @@ -39,8 +35,10 @@ "zip-a-folder": "^0.0.12" }, "devDependencies": { + "@vitalets/google-translate-api": "^8.0.0", "@iarna/rtf-to-html": "^1.1.0", "@types/file-saver": "^2.0.1", + "@types/i18next": "^13.0.0", "@types/marked": "^2.0.2", "@types/md5": "^2.2.0", "@types/node": "^13.13.2", @@ -52,6 +50,7 @@ "@types/react-router-dom": "^5.1.6", "@types/spark-md5": "^3.0.2", "@types/underscore": "^1.10.24", + "bing-translate-api": "^2.6.0", "classnames": "^2.2.6", "concurrently": "^5.0.1", "cross-env": "^6.0.3", @@ -60,6 +59,7 @@ "file-saver": "^2.0.2", "hard-source-webpack-plugin": "^0.13.1", "html-react-parser": "^0.13.0", + "http2": "^3.3.7", "i18next": "^20.2.4", "js-untar": "^2.0.0", "localforage": "^1.7.3", diff --git a/src/components/dialogs/deleteDialog/component.tsx b/src/components/dialogs/deleteDialog/component.tsx index 18b8cbc4..c4580bb6 100644 --- a/src/components/dialogs/deleteDialog/component.tsx +++ b/src/components/dialogs/deleteDialog/component.tsx @@ -28,14 +28,11 @@ class DeleteDialog extends React.Component { this.props.handleFetchBookmarks(); } if (this.props.notes) { - console.log(key, 2); let noteArr = DeleteUtil.deleteNotes(this.props.notes, key); - console.log(noteArr, 3); if (noteArr.length === 0) { await localforage.removeItem("notes"); resolve(); } else { - console.log(key, 5); await localforage.setItem("notes", noteArr); resolve(); } @@ -61,7 +58,6 @@ class DeleteDialog extends React.Component { } else if (this.props.mode === "trash") { let keyArr = AddTrash.getAllTrash(); for (let i = 0; i < keyArr.length; i++) { - console.log(i, keyArr[i]); await this.deleteBook(keyArr[i]); } @@ -109,7 +105,6 @@ class DeleteDialog extends React.Component { //删除阅读历史 RecordLocation.clear(key); //删除书签,笔记,书摘,高亮 - console.log(key, 1); await this.handleDeleteOther(key); resolve(); }) diff --git a/src/utils/readUtils/sortUtil.tsx b/src/utils/readUtils/sortUtil.tsx index fdaa039a..a4eee662 100644 --- a/src/utils/readUtils/sortUtil.tsx +++ b/src/utils/readUtils/sortUtil.tsx @@ -62,7 +62,7 @@ class SortUtil { ) { let oldRecentArr = books.map((item) => item.key); let recentArr = RecordRecent.getAllRecent(); - if (bookSortCode.sort === 1) { + if (bookSortCode.sort === 1 || bookSortCode.sort === 0) { if (bookSortCode.order === 1) { return getBookIndex(recentArr, oldRecentArr).reverse(); } else { diff --git a/src/utils/serviceUtils/bingTTS.tsx b/src/utils/serviceUtils/bingTTS.tsx new file mode 100644 index 00000000..fe45da2e --- /dev/null +++ b/src/utils/serviceUtils/bingTTS.tsx @@ -0,0 +1,59 @@ +import axios from "axios"; + +async function getToken() { + try { + const result = await axios.get("https://www.bing.com/translator"); + const iidMatch = /data-iid="(.+?)"/.exec(result.data); + const igMatch = /IG:"(.+?)"/.exec(result.data); + if (!iidMatch || !igMatch) { + throw new Error("Can't get Token"); + } + + var data = { + iid: iidMatch[1], + ig: igMatch[1], + }; + + return data; + } catch (error) { + console.log(error); + } +} + +async function getVoiceToken({ ig, iid }) { + try { + console.log(iid); + const url = `https://www.bing.com/tfetspktok?isVertical=1&IG=${ig}&IID=${iid}`; + const result = await axios.post(url); + return result.data; + } catch (error) { + console.log(error); + } +} + +export async function getVoiceSpeech(text) { + try { + const data: any = await getToken(); + const tokenData = await getVoiceToken(data); + const xmlBody = + "" + + text + + ""; + const config = { + headers: { + authorization: "Bearer " + tokenData.token, + "Content-Type": "application/ssml+xml", + "x-microsoft-outputformat": "audio-16khz-32kbitrate-mono-mp3", + }, + }; + console.log(config); + const result = await axios.post( + "https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1", + xmlBody, + config + ); + return result.data; + } catch (error) { + console.log(error); + } +}