Skip to content

Commit

Permalink
修复被墙的线路,新增海外线路
Browse files Browse the repository at this point in the history
  • Loading branch information
akl7777777 committed May 27, 2023
1 parent 9ca3f04 commit 6a7362e
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/cha.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const {random_safe} = require("./e.js");
const {readFile,historyFileName} = require("./file");
const file = require("./file");


// 已经被墙,海外可访问
async function translate(query, source_lang, target_lang, translate_text, completion) {
try {
let mode = $option.mode;
Expand Down
6 changes: 5 additions & 1 deletion src/info.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"identifier": "com.akl.bob-plugin-akl-chatgpt-free-translate",
"version": "1.1.3",
"version": "1.1.4",
"category": "translate",
"name": "Free ChatGPT",
"summary": "免秘钥免启动任何服务调用ChatGPT",
Expand Down Expand Up @@ -73,6 +73,10 @@
"title": "正式版(备用2很快)",
"value": "default-back2"
},
{
"title": "海外线路(1)",
"value": "oversea-1"
},
{
"title": "Alpha版本",
"value": "alpha"
Expand Down
5 changes: 4 additions & 1 deletion src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var ss = require('./ss.js');
var orai = require('./orai.js');
var sc2e = require('./sc2e.js');
var cha = require('./cha.js');
var notag = require('./notag.js');
var d8888 = require('./8888.js');
var gamma = require('./gamma.js');
var delta = require('./delta.js');
Expand Down Expand Up @@ -74,8 +75,10 @@ function translate(query, completion) {
chatResult = await of.translate(query, source_lang, target_lang, translate_text, completion)
} else if (server === 'default-back2') {
chatResult = await d8888.translate(query, source_lang, target_lang, translate_text, completion)
} else {
} else if (server === 'oversea-1') {
chatResult = await cha.translate(query, source_lang, target_lang, translate_text, completion)
} else {
chatResult = await notag.translate(query, source_lang, target_lang, translate_text, completion)
}
let mode = $option.mode;
const configValue = readFile();
Expand Down
100 changes: 100 additions & 0 deletions src/notag.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
const CryptoJS = require("crypto-js");
const {random_safe} = require("./e.js");
const {readFile,historyFileName} = require("./file");
const file = require("./file");

async function translate(query, source_lang, target_lang, translate_text, completion) {
try {
let mode = $option.mode;
let prompt = $option.prompt;
const configValue = readFile();
if (configValue.mode) {
mode = configValue.mode;
}
let A = [{"role": "user", "content": translate_text}]
// 如果是翻译模式,需要拼接
if (mode === 'translate') {
translate_text = `请将以下${source_lang}内容翻译成${target_lang}:\n${translate_text}`
A = [{"role": "user", "content": translate_text}]
} else if (mode === 'polishing') {
translate_text = `请润色以下内容:\n${translate_text}`
A = [{"role": "user", "content": translate_text}]
} else if (mode === 'custom_prompt') {
translate_text = `${prompt}\n${translate_text}`
A = [{"role": "user", "content": translate_text}]
} else {
A = readFile(historyFileName).concat(A);
}
const L = Date.now();
const resp = await $http.request({
method: "POST",
url: random_safe('aHR0cDovL3d3dy5ub3RhZy5jbi9hcGkvZ2VuZXJhdGU='),
body: {
messages: A,
time: L,
pass: null,
sign: await generateSignature({
t: L,
m: (A && A[A.length - 1] && A[A.length - 1].content) ? A[A.length - 1].content : ""
})
},
header: {
'Content-Type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'
}
});
if (resp.data) {
completion({
result: {
from: query.detectFrom,
to: query.detectTo,
toParagraphs: resp.data.split('\n'),
},
});
} else {
const errMsg = resp.data ? JSON.stringify(resp.data) : '请求翻译接口失败,请检查网络'
completion({
error: {
type: 'unknown',
message: errMsg,
addtion: errMsg,
},
});
}
// 对话模式就保存
if (mode === 'conversation') {
A.push({
content: resp.data,
role: "assistant",
});
file.writeFile({
value: A,
fileName: file.historyFileName,
});
}
return resp.data;
} catch (e) {
$log.error('接口请求错误 ==> ' + JSON.stringify(e))
Object.assign(e, {
_type: 'network',
_message: '接口请求错误 - ' + JSON.stringify(e),
});
throw e;
}
}

async function digestMessage(r) {
const hash = CryptoJS.SHA256(r);
return hash.toString(CryptoJS.enc.Hex);
}

async function generateSignature(r) {
const {t: e, m: t} = r;
const n = {}.PUBLIC_SECRET_KEY;
const a = `${e}:${t}:${n}`;
const rs = await digestMessage(a);
$log.error('==========' + rs)
return rs;
}

exports.translate = translate;

0 comments on commit 6a7362e

Please sign in to comment.