From 2c8e7b845a5c0409cb2c0221f9a0f8b88e2a8d4b Mon Sep 17 00:00:00 2001 From: Archeb Date: Wed, 15 May 2024 13:22:56 +0800 Subject: [PATCH] add proxy support --- index.js | 3 +++ package.json | 1 + start.bat | 4 ++-- usage.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 63 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 2457137..10e8dc1 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,8 @@ const express = require("express"); const FormData = require("form-data"); const docx = require("docx"); const { v4: uuidv4 } = require("uuid"); +const { ProxyAgent } = require("proxy-agent"); +const agent = new ProxyAgent(); const app = express(); const axios = require("axios"); const port = 8080; @@ -95,6 +97,7 @@ app.post("/v1/messages", apiKeyAuth, (req, res) => { "User-Agent": session.user_agent, "Cookie": session.cookie, }, + httpsAgent: agent, }); // 试算用户消息长度 diff --git a/package.json b/package.json index 1ea5196..df38b02 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "docx": "^8.5.0", "express": "^4.19.2", "form-data": "^4.0.0", + "proxy-agent": "^6.4.0", "uuid": "^9.0.1" } } diff --git a/start.bat b/start.bat index 6bd87df..dd59036 100644 --- a/start.bat +++ b/start.bat @@ -1,5 +1,5 @@ call npm install -set YOUCOM_COOKIE=Your Cookie -set USER_AGENT=Your User-Agent +set PASSWORD= +set https_proxy= node index pause \ No newline at end of file diff --git a/usage.md b/usage.md index 95b9b80..c655c25 100644 --- a/usage.md +++ b/usage.md @@ -10,20 +10,50 @@ 5. 下载或Clone本项目代码,解压 -6. 编辑 `start.bat` 文件,把上面的 Cookie 和 User Agent 粘贴进去 +6. 编辑 `config.example.js` 文件,把上面的 Cookie 和 User Agent 粘贴进去,如果有多个则按如下格式填入。然后另存为把文件名改为 `config.js` + +``` +module.exports = { + "sessions": [ + { + "user_agent": "...", + "cookie": "cookie1" + }, + { + "user_agent": "...", + "cookie": "cookie2" + }, + { + "user_agent": "...", + "cookie": "cookie3" + } + ] +} +``` 7. (可选)如果需要,您可以仿照第6步在`start.bat`中设定一个名为 "PASSWORD" 的环境变量,并将其用作密码。如果没有定义该环境变量,程序将接受所有传入的请求,而不进行任何身份验证 + (可选)如果需要,可以设置代理。 + 8. 启动 start.bat 9. 酒馆中选择 Claude,反向代理地址填 http://127.0.0.1:8080/v1 **反代密码必须填, 同时打开流式传输**,随便什么都可以(除非你在第7步设置了PASSWORD)。 10. 开始使用。如果失败了/没有结果/403/Warning 就多重试几次。 +# 使用代理 + +可以使用本地的socks5或http(s)代理。只需在 start.bat 中设置 `https_proxy` 环境变量。 + +比如,如要使用 Clash 的默认本地代理,则应设置为 `set https_proxy=http://127.0.0.1:7890` + +欲知详细代理格式,请查阅 https://www.npmjs.com/package/proxy-from-env + ## 注意事项 出现 403 错误请重新抓 COOKIE 或者更换代理出口 IP。 + # Usage 1. Get a you.com account and subscribe, log in. @@ -36,9 +66,30 @@ 5. Download or Clone the code of this project and unzip it. -6. Edit the `start.bat` file and paste the cookie and User Agent into it. +6. Edit `config.example.js` as follow。And save the file as `config.js` + +``` +module.exports = { + "sessions": [ + { + "user_agent": "...", + "cookie": "cookie1" + }, + { + "user_agent": "...", + "cookie": "cookie2" + }, + { + "user_agent": "...", + "cookie": "cookie3" + } + ] +} +``` 7. (Optional) you can set an environment variable named `PASSWORD` in `start.bat`, similar to Step 6, and use it as the password. If this environment variable is not defined, the program will accept all incoming requests without performing any authentication. + + (Optional) You can set the proxy in start.bat. See below. 8. Start start.bat @@ -46,6 +97,10 @@ 10. Enjoy it. If it fails/no result/403/Warning, try again. +# Use custom proxy + +Use the `https_proxy` env to set custom proxy. Refer to https://www.npmjs.com/package/proxy-from-env for detail. + ## Caution If you get 403 errors, consider getting the cookie again or changing your IP.