mirror of
https://github.com/6dylan6/jdpro.git
synced 2025-12-17 15:25:03 +08:00
@@ -104,11 +104,15 @@ DY_PROXY_RENUM='5' 获取IP失败重试次数
|
|||||||
|
|
||||||
DY_PROXY_REDELAY='3' 获取失败重试间隔 单位秒
|
DY_PROXY_REDELAY='3' 获取失败重试间隔 单位秒
|
||||||
|
|
||||||
代理池模式支持全部js脚
|
****API代理的意思就是通过url得到随机可用代理,response的格式就是:xxx.xxx.xxx.xxx:xxxx**
|
||||||
|
|
||||||
|
代理池模式支持全部js
|
||||||
|
|
||||||
DP_POOL='http://xxx' 代理池url
|
DP_POOL='http://xxx' 代理池url
|
||||||
|
|
||||||
PERMIT_JS='farm&plant&opencard' 需要走代理池的js关键词,多个&分割,必须设置
|
PERMIT_JS='farm&plant&opencard' 需要走代理池的js关键词,多个&分割(可不设置,如果不设置就是所有的js都会走)
|
||||||
|
|
||||||
|
**代理池是一个固定不变的地址,通过这个地址服务,服务会自动转发请求到可用代理,本质上代理池就是一个代理服务器**
|
||||||
|
|
||||||
禁止指定的pin执行任务:
|
禁止指定的pin执行任务:
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,12 @@
|
|||||||
version: '2'
|
version: '2'
|
||||||
services:
|
services:
|
||||||
ql_web:
|
ql_web:
|
||||||
image: whyour/qinglong:2.11.3
|
image: whyour/qinglong:2.17.9
|
||||||
container_name: ql
|
container_name: ql
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/config:/ql/config
|
- ./qinglong/data:/ql/data
|
||||||
- ./data/log:/ql/log
|
- ./qinglong/deps/pnpm:/root/.local/share/pnpm
|
||||||
- ./data/db:/ql/db
|
- ./qinglong/deps/pip3:/usr/local/lib/python3.11/site-packages
|
||||||
- ./data/scripts:/ql/scripts
|
|
||||||
- ./data/repo:/ql/repo
|
|
||||||
ports:
|
ports:
|
||||||
- "0.0.0.0:5700:5700"
|
- "5700:5700"
|
||||||
environment:
|
restart: unless-stopped
|
||||||
- ENABLE_HANGUP=true
|
|
||||||
- ENABLE_WEB_PANEL=true
|
|
||||||
restart: always
|
|
||||||
|
|||||||
@@ -46,25 +46,16 @@ cd $ql_path
|
|||||||
cat > docker-compose.yml <<EOF
|
cat > docker-compose.yml <<EOF
|
||||||
version: '2'
|
version: '2'
|
||||||
services:
|
services:
|
||||||
qinglong:
|
ql_web:
|
||||||
image: whyour/qinglong:2.11.3
|
image: whyour/qinglong:2.17.9
|
||||||
container_name: qinglong
|
container_name: ql
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/config:/ql/config
|
- ./qinglong/data:/ql/data
|
||||||
- ./data/log:/ql/log
|
- ./qinglong/deps/pnpm:/root/.local/share/pnpm
|
||||||
- ./data/db:/ql/db
|
- ./qinglong/deps/pip3:/usr/local/lib/python3.11/site-packages
|
||||||
- ./data/scripts:/ql/scripts
|
|
||||||
- ./data/repo:/ql/repo
|
|
||||||
ports:
|
ports:
|
||||||
- "0.0.0.0:5500:5700"
|
- "5700:5700"
|
||||||
networks:
|
restart: unless-stopped
|
||||||
- net
|
|
||||||
environment:
|
|
||||||
- ENABLE_HANGUP=true
|
|
||||||
- ENABLE_WEB_PANEL=true
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
net:
|
|
||||||
EOF
|
EOF
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
if [ $? -ne 0 ] ; then
|
if [ $? -ne 0 ] ; then
|
||||||
|
|||||||
37
jd_wsck.py
37
jd_wsck.py
@@ -42,8 +42,29 @@ def randomuserAgent():
|
|||||||
|
|
||||||
|
|
||||||
def get_proxy_api(proxy_url, max_retries=5, timeout=60, retry_delay=1):
|
def get_proxy_api(proxy_url, max_retries=5, timeout=60, retry_delay=1):
|
||||||
|
session = requests.Session()
|
||||||
for retry in range(max_retries):
|
for retry in range(max_retries):
|
||||||
res = get(url=proxy_url)
|
if '@' in proxy_url:
|
||||||
|
# 解析认证信息
|
||||||
|
auth_part, url_part = proxy_url.split('@')
|
||||||
|
protocol = auth_part.split('://')[0]
|
||||||
|
auth_part = auth_part.split('://')[1]
|
||||||
|
host = url_part
|
||||||
|
|
||||||
|
# 处理只有 token 的情况
|
||||||
|
if ':' in auth_part:
|
||||||
|
username, password = auth_part.split(':')
|
||||||
|
session.auth = (username, password)
|
||||||
|
else:
|
||||||
|
# 只有 token 的情况,需要 base64 编码
|
||||||
|
token = auth_part
|
||||||
|
token_b64 = base64.b64encode(token.encode()).decode()
|
||||||
|
session.headers.update({'Authorization': f'Basic {token_b64}'})
|
||||||
|
|
||||||
|
res = session.get(f"{protocol}://{host}", verify=False, timeout=timeout)
|
||||||
|
else:
|
||||||
|
res = session.get(proxy_url, verify=False, timeout=timeout)
|
||||||
|
|
||||||
printf(f"本次获取到的代理:{res.text}")
|
printf(f"本次获取到的代理:{res.text}")
|
||||||
proxy_ip_port = res.text.strip()
|
proxy_ip_port = res.text.strip()
|
||||||
proxy_address = f"http://{proxy_ip_port}"
|
proxy_address = f"http://{proxy_ip_port}"
|
||||||
@@ -242,7 +263,7 @@ def get_sign_diy(pin):
|
|||||||
|
|
||||||
def getcookie_wskey(key):
|
def getcookie_wskey(key):
|
||||||
proxys = proxy_url
|
proxys = proxy_url
|
||||||
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
if os.environ.get("DY_PROXY") is not None:
|
||||||
proxys = get_proxy_api(proxy_url)
|
proxys = get_proxy_api(proxy_url)
|
||||||
|
|
||||||
body = "body=%7B%22to%22%3A%22https%3A//plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html%22%7D"
|
body = "body=%7B%22to%22%3A%22https%3A//plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html%22%7D"
|
||||||
@@ -270,7 +291,7 @@ def getcookie_wskey(key):
|
|||||||
printf(f"【错误】{unquote(pin)}在获取token时:\n{error}")
|
printf(f"【错误】{unquote(pin)}在获取token时:\n{error}")
|
||||||
return pin, "False"
|
return pin, "False"
|
||||||
randomuserAgent()
|
randomuserAgent()
|
||||||
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
if os.environ.get("DY_PROXY") is not None:
|
||||||
proxys = get_proxy_api(proxy_url)
|
proxys = get_proxy_api(proxy_url)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -280,7 +301,7 @@ def getcookie_wskey(key):
|
|||||||
printf(f"【警告】{unquote(pin)}在获取token时失败,等待5秒后重试")
|
printf(f"【警告】{unquote(pin)}在获取token时失败,等待5秒后重试")
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
randomuserAgent()
|
randomuserAgent()
|
||||||
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
if os.environ.get("DY_PROXY") is not None:
|
||||||
proxys = get_proxy_api(proxy_url)
|
proxys = get_proxy_api(proxy_url)
|
||||||
|
|
||||||
if token=="xxx":
|
if token=="xxx":
|
||||||
@@ -307,7 +328,7 @@ def getcookie_wskey(key):
|
|||||||
printf(f"【错误】{unquote(pin)}在获取cookie时:\n{error}")
|
printf(f"【错误】{unquote(pin)}在获取cookie时:\n{error}")
|
||||||
return "Error"
|
return "Error"
|
||||||
randomuserAgent()
|
randomuserAgent()
|
||||||
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
if os.environ.get("DY_PROXY") is not None:
|
||||||
proxys = get_proxy_api(proxy_url)
|
proxys = get_proxy_api(proxy_url)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -442,13 +463,13 @@ def main():
|
|||||||
printf("版本: 20230602")
|
printf("版本: 20230602")
|
||||||
printf("说明: 如果用Wxpusher通知需配置WP_APP_TOKEN_ONE和WP_APP_MAIN_UID,其中WP_APP_MAIN_UID是你的Wxpusher UID")
|
printf("说明: 如果用Wxpusher通知需配置WP_APP_TOKEN_ONE和WP_APP_MAIN_UID,其中WP_APP_MAIN_UID是你的Wxpusher UID")
|
||||||
printf("隧道型代理池接口:export WSKEY_PROXY_TUNNRL='http://127.0.0.1:123456'")
|
printf("隧道型代理池接口:export WSKEY_PROXY_TUNNRL='http://127.0.0.1:123456'")
|
||||||
printf("拉取型代理API接口(数据格式:txt;提取数量:每次一个):export WSKEY_PROXY_URL='http://xxx.com/apiUrl'")
|
printf("拉取型代理API接口(数据格式:txt;提取数量:每次一个):export DY_PROXY='http://xxx.com/apiUrl'")
|
||||||
printf("没有代理可以自行注册,比如携趣,巨量,每日免费1000IP,完全够用")
|
printf("没有代理可以自行注册,比如携趣,巨量,每日免费1000IP,完全够用")
|
||||||
printf("====================================")
|
printf("====================================")
|
||||||
config=""
|
config=""
|
||||||
envtype=""
|
envtype=""
|
||||||
global proxy_url
|
global proxy_url
|
||||||
proxy_url=os.environ.get("WSKEY_PROXY_URL") or os.environ.get("WSKEY_PROXY_TUNNRL") or None
|
proxy_url=os.environ.get("DY_PROXY") or os.environ.get("WSKEY_PROXY_TUNNRL") or None
|
||||||
iswxpusher=False
|
iswxpusher=False
|
||||||
counttime=0
|
counttime=0
|
||||||
|
|
||||||
@@ -479,7 +500,7 @@ def main():
|
|||||||
iswxpusher=False
|
iswxpusher=False
|
||||||
|
|
||||||
if proxy_url is None:
|
if proxy_url is None:
|
||||||
printf("没有配置代理,无法使用代理!\n请配置环境变量WSKEY_PROXY_TUNNRL或WSKEY_PROXY_URL\n")
|
printf("没有配置代理,无法使用代理!\n请配置环境变量WSKEY_PROXY_TUNNRL或DY_PROXY\n")
|
||||||
printf("====================================")
|
printf("====================================")
|
||||||
else:
|
else:
|
||||||
printf(f"已配置代理: {proxy_url}\n")
|
printf(f"已配置代理: {proxy_url}\n")
|
||||||
|
|||||||
Reference in New Issue
Block a user