Spaces:
Sleeping
Sleeping
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 |
|