Spaces:
Paused
Paused
Update index.js
Browse files
index.js
CHANGED
|
@@ -73,9 +73,8 @@ async function initialization() {
|
|
| 73 |
return;
|
| 74 |
}
|
| 75 |
const ssoArray = process.env.SSO.split(',');
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
tokenManager.addToken(`sso-rw=${ssorwArray[index]};sso=${sso}`);
|
| 79 |
});
|
| 80 |
console.log(JSON.stringify(tokenManager.getActiveTokens(), null, 2));
|
| 81 |
await Utils.get_signature()
|
|
@@ -215,7 +214,6 @@ class Utils {
|
|
| 215 |
static async extractGrokHeaders() {
|
| 216 |
Logger.info("开始提取头信息", 'Server');
|
| 217 |
try {
|
| 218 |
-
// 启动浏览器
|
| 219 |
const browser = await puppeteer.launch({
|
| 220 |
headless: true,
|
| 221 |
args: [
|
|
@@ -236,16 +234,12 @@ class Utils {
|
|
| 236 |
const cookies = await page.cookies();
|
| 237 |
const targetHeaders = ['x-anonuserid', 'x-challenge', 'x-signature'];
|
| 238 |
const extractedHeaders = {};
|
| 239 |
-
// 遍历 Cookies
|
| 240 |
for (const cookie of cookies) {
|
| 241 |
-
// 检查是否为目标头信息
|
| 242 |
if (targetHeaders.includes(cookie.name.toLowerCase())) {
|
| 243 |
extractedHeaders[cookie.name.toLowerCase()] = cookie.value;
|
| 244 |
}
|
| 245 |
}
|
| 246 |
-
// 关闭浏览器
|
| 247 |
await browser.close();
|
| 248 |
-
// 打印并返回提取的头信息
|
| 249 |
Logger.info('提取的头信息:', JSON.stringify(extractedHeaders, null, 2), 'Server');
|
| 250 |
return extractedHeaders;
|
| 251 |
|
|
@@ -724,6 +718,7 @@ async function handleImageResponse(imageUrl) {
|
|
| 724 |
return ``
|
| 725 |
}
|
| 726 |
|
|
|
|
| 727 |
const formData = new FormData();
|
| 728 |
if(CONFIG.API.PICGO_KEY){
|
| 729 |
formData.append('source', imageBuffer, {
|
|
@@ -754,7 +749,7 @@ async function handleImageResponse(imageUrl) {
|
|
| 754 |
contentType: 'image/jpeg'
|
| 755 |
});
|
| 756 |
const formDataHeaders = formData.getHeaders();
|
| 757 |
-
const responseURL = await fetch("https://
|
| 758 |
method: "POST",
|
| 759 |
headers: {
|
| 760 |
...formDataHeaders,
|
|
@@ -804,15 +799,11 @@ app.post('/hf/v1/chat/completions', async (req, res) => {
|
|
| 804 |
try {
|
| 805 |
const authToken = req.headers.authorization?.replace('Bearer ', '');
|
| 806 |
if (CONFIG.API.IS_CUSTOM_SSO) {
|
| 807 |
-
if (authToken
|
| 808 |
-
const
|
| 809 |
-
const result = [
|
| 810 |
-
`sso=${parts[0]}`,
|
| 811 |
-
`ssp_rw=${parts[1]}`
|
| 812 |
-
].join(';');
|
| 813 |
tokenManager.setToken(result);
|
| 814 |
} else {
|
| 815 |
-
return res.status(401).json({ error: '自定义的SSO
|
| 816 |
}
|
| 817 |
} else if (authToken !== CONFIG.API.API_KEY) {
|
| 818 |
return res.status(401).json({ error: 'Unauthorized' });
|
|
@@ -836,7 +827,7 @@ app.post('/hf/v1/chat/completions', async (req, res) => {
|
|
| 836 |
CONFIG.API.SIGNATURE_COOKIE = await Utils.createAuthHeaders(req.body.model);
|
| 837 |
}
|
| 838 |
if (!CONFIG.API.SIGNATURE_COOKIE) {
|
| 839 |
-
throw new Error('
|
| 840 |
}
|
| 841 |
Logger.info(`当前令牌索引: ${CONFIG.SSO_INDEX}`, 'Server');
|
| 842 |
Logger.info(`当前令牌: ${JSON.stringify(CONFIG.API.SIGNATURE_COOKIE,null,2)}`, 'Server');
|
|
@@ -859,7 +850,7 @@ app.post('/hf/v1/chat/completions', async (req, res) => {
|
|
| 859 |
const responseText = await newMessageReq.json();
|
| 860 |
conversationId = responseText.conversationId;
|
| 861 |
} else {
|
| 862 |
-
Logger.error(
|
| 863 |
throw new Error(`创建会话响应错误: ${responseText2}`);
|
| 864 |
}
|
| 865 |
|
|
|
|
| 73 |
return;
|
| 74 |
}
|
| 75 |
const ssoArray = process.env.SSO.split(',');
|
| 76 |
+
ssoArray.forEach((sso) => {
|
| 77 |
+
tokenManager.addToken(`sso-rw=${sso};sso=${sso}`);
|
|
|
|
| 78 |
});
|
| 79 |
console.log(JSON.stringify(tokenManager.getActiveTokens(), null, 2));
|
| 80 |
await Utils.get_signature()
|
|
|
|
| 214 |
static async extractGrokHeaders() {
|
| 215 |
Logger.info("开始提取头信息", 'Server');
|
| 216 |
try {
|
|
|
|
| 217 |
const browser = await puppeteer.launch({
|
| 218 |
headless: true,
|
| 219 |
args: [
|
|
|
|
| 234 |
const cookies = await page.cookies();
|
| 235 |
const targetHeaders = ['x-anonuserid', 'x-challenge', 'x-signature'];
|
| 236 |
const extractedHeaders = {};
|
|
|
|
| 237 |
for (const cookie of cookies) {
|
|
|
|
| 238 |
if (targetHeaders.includes(cookie.name.toLowerCase())) {
|
| 239 |
extractedHeaders[cookie.name.toLowerCase()] = cookie.value;
|
| 240 |
}
|
| 241 |
}
|
|
|
|
| 242 |
await browser.close();
|
|
|
|
| 243 |
Logger.info('提取的头信息:', JSON.stringify(extractedHeaders, null, 2), 'Server');
|
| 244 |
return extractedHeaders;
|
| 245 |
|
|
|
|
| 718 |
return ``
|
| 719 |
}
|
| 720 |
|
| 721 |
+
Logger.info("开始请求图床", 'Server');
|
| 722 |
const formData = new FormData();
|
| 723 |
if(CONFIG.API.PICGO_KEY){
|
| 724 |
formData.append('source', imageBuffer, {
|
|
|
|
| 749 |
contentType: 'image/jpeg'
|
| 750 |
});
|
| 751 |
const formDataHeaders = formData.getHeaders();
|
| 752 |
+
const responseURL = await fetch("https://tu.my/api/v1/upload", {
|
| 753 |
method: "POST",
|
| 754 |
headers: {
|
| 755 |
...formDataHeaders,
|
|
|
|
| 799 |
try {
|
| 800 |
const authToken = req.headers.authorization?.replace('Bearer ', '');
|
| 801 |
if (CONFIG.API.IS_CUSTOM_SSO) {
|
| 802 |
+
if (authToken) {
|
| 803 |
+
const result = `sso=${authToken};ssp_rw=${authToken}`;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 804 |
tokenManager.setToken(result);
|
| 805 |
} else {
|
| 806 |
+
return res.status(401).json({ error: '自定义的SSO令牌缺失' });
|
| 807 |
}
|
| 808 |
} else if (authToken !== CONFIG.API.API_KEY) {
|
| 809 |
return res.status(401).json({ error: 'Unauthorized' });
|
|
|
|
| 827 |
CONFIG.API.SIGNATURE_COOKIE = await Utils.createAuthHeaders(req.body.model);
|
| 828 |
}
|
| 829 |
if (!CONFIG.API.SIGNATURE_COOKIE) {
|
| 830 |
+
throw new Error('该模型无可用令牌');
|
| 831 |
}
|
| 832 |
Logger.info(`当前令牌索引: ${CONFIG.SSO_INDEX}`, 'Server');
|
| 833 |
Logger.info(`当前令牌: ${JSON.stringify(CONFIG.API.SIGNATURE_COOKIE,null,2)}`, 'Server');
|
|
|
|
| 850 |
const responseText = await newMessageReq.json();
|
| 851 |
conversationId = responseText.conversationId;
|
| 852 |
} else {
|
| 853 |
+
Logger.error(`创建会话响应错误: ${responseText2}`, 'Server');
|
| 854 |
throw new Error(`创建会话响应错误: ${responseText2}`);
|
| 855 |
}
|
| 856 |
|