Former-commit-id: 86d55a177e16128b2c8d6403b4c707f22ba040d8
This commit is contained in:
troyeguo
2022-07-31 14:15:14 +08:00
parent b8419ce274
commit 40fc3632aa
4 changed files with 64 additions and 10 deletions

View File

@@ -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",

View File

@@ -28,14 +28,11 @@ class DeleteDialog extends React.Component<DeleteDialogProps> {
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<DeleteDialogProps> {
} 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<DeleteDialogProps> {
//删除阅读历史
RecordLocation.clear(key);
//删除书签,笔记,书摘,高亮
console.log(key, 1);
await this.handleDeleteOther(key);
resolve();
})

View File

@@ -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 {

View File

@@ -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 =
"<speak version='1.0' xml:lang='vi-VN'><voice xml:lang='vi-VN' xml:gender='Male' name='vi-VN-An'><prosody rate='-20.00%'>" +
text +
"</prosody></voice></speak>";
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);
}
}