添加 Points_Based/JKHZ_QD.py
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# const $ = new Env("接口盒子签到");
|
||||
# cron: 55 6 * * *
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import time
|
||||
import requests
|
||||
from datetime import datetime
|
||||
|
||||
# ========== 配置区 ==========
|
||||
SOURCE = 'env' # 从环境变量 HZ_API 读取(换行分割)
|
||||
LOG_FILE = 'sign.log'
|
||||
# ============================
|
||||
|
||||
def get_accounts():
|
||||
env = os.environ.get('HZ_API')
|
||||
if not env:
|
||||
print("❌ 未设置环境变量 HZ_API")
|
||||
sys.exit(1)
|
||||
accounts = []
|
||||
for line in env.splitlines():
|
||||
line = line.strip()
|
||||
if not line or line.startswith('#'):
|
||||
continue
|
||||
if '#' in line:
|
||||
uid, ukey = line.split('#', 1)
|
||||
accounts.append((uid.strip(), ukey.strip()))
|
||||
else:
|
||||
print(f"⚠️ 跳过无效行:{line}")
|
||||
if not accounts:
|
||||
print("❌ HZ_API 中未找到有效账号")
|
||||
sys.exit(1)
|
||||
return accounts
|
||||
|
||||
def sign_in(uid, ukey):
|
||||
# ----- 修改点:更换为正式接口地址 -----
|
||||
url = "https://cn.apihz.cn/api/xitong/function.php"
|
||||
params = {"id": uid, "key": ukey, "type": 1}
|
||||
try:
|
||||
resp = requests.get(url, params=params, timeout=10)
|
||||
resp.encoding = 'utf-8'
|
||||
data = resp.json()
|
||||
code = data.get('code')
|
||||
if code == 200:
|
||||
return True, data
|
||||
else:
|
||||
return False, data
|
||||
except Exception as e:
|
||||
return False, {"error": str(e)}
|
||||
|
||||
def log_message(msg, also_print=True):
|
||||
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
full = f"[{timestamp}] {msg}"
|
||||
if also_print:
|
||||
print(full)
|
||||
with open(LOG_FILE, 'a', encoding='utf-8') as f:
|
||||
f.write(full + '\n')
|
||||
|
||||
def main():
|
||||
start_time = time.time()
|
||||
log_message("========== 开始签到 ==========")
|
||||
accounts = get_accounts()
|
||||
log_message(f"共加载 {len(accounts)} 个账号")
|
||||
|
||||
success = fail = 0
|
||||
for idx, (uid, ukey) in enumerate(accounts, 1):
|
||||
display = uid[-4:] if len(uid) > 4 else uid
|
||||
log_message(f"账号 {idx} (ID: ***{display}) 签到中...")
|
||||
ok, data = sign_in(uid, ukey)
|
||||
if ok:
|
||||
success += 1
|
||||
log_message(f"✅ 账号 {idx} 签到成功!响应:{json.dumps(data, ensure_ascii=False)}")
|
||||
else:
|
||||
fail += 1
|
||||
msg = data.get('msg', str(data)) if isinstance(data, dict) else str(data)
|
||||
log_message(f"❌ 账号 {idx} 签到失败:{msg}")
|
||||
time.sleep(0.5)
|
||||
|
||||
elapsed = time.time() - start_time
|
||||
log_message(f"签到完成:成功 {success},失败 {fail},耗时 {elapsed:.2f} 秒")
|
||||
log_message("========== 结束 ==========\n")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user