119 lines
3.8 KiB
Python
119 lines
3.8 KiB
Python
# Source: https://github.com/lksky8/sign-ql/blob/main/yxw_luckbox.py
|
||
# Raw: https://raw.githubusercontent.com/lksky8/sign-ql/main/yxw_luckbox.py
|
||
# Repo: lksky8/sign-ql
|
||
# Path: yxw_luckbox.py
|
||
# UploadedAt: 2025-08-21T12:12:12Z
|
||
# SHA256: 7951192443b96cec1fe801de769343a2e080be439b46c9b2bfb4372a4cdfe2e1
|
||
# Category: web版/账密
|
||
# Evidence: web/H5关键词 + username/password/login
|
||
|
||
'''
|
||
作者:https://github.com/lksky8/sign-ql/
|
||
日期:2025-8-21
|
||
软件:游侠网-开宝箱
|
||
功能:每隔三小时自动开宝箱领取50金币
|
||
定时:0,5 */3 * * *
|
||
'''
|
||
|
||
import json
|
||
import requests
|
||
import time
|
||
|
||
send_msg = ''
|
||
one_msg = ''
|
||
|
||
def log(cont=''):
|
||
global send_msg, one_msg
|
||
if cont:
|
||
one_msg += f'{cont}\n'
|
||
send_msg += f'{cont}\n'
|
||
|
||
def send_notification_message(title):
|
||
try:
|
||
from notify import send
|
||
print("加载通知服务成功!")
|
||
send(title, send_msg)
|
||
except Exception as e:
|
||
if e:
|
||
print('发送通知消息失败!')
|
||
|
||
|
||
def get_user_ids_and_tokens(file_path='youxia_data.json'):
|
||
try:
|
||
# 1. 读取JSON文件
|
||
with open(file_path, 'r', encoding='utf-8') as f:
|
||
phone_data = json.load(f)
|
||
|
||
# 2. 遍历每个手机号
|
||
results = []
|
||
for phone_key, data in phone_data.items():
|
||
user_name = data.get('nickname')
|
||
user_token = data.get('token')
|
||
api3AliSSO_cookie = data.get('api3AliSSO')
|
||
|
||
if user_name and user_token: # 确保userId和token存在
|
||
results.append({
|
||
'phone_key': phone_key,
|
||
'user_name': user_name,
|
||
'api3AliSSO': api3AliSSO_cookie
|
||
})
|
||
# print(f"手机号: {phone_key}, userId: {user_id}, token: {token}")
|
||
|
||
return results
|
||
|
||
except FileNotFoundError:
|
||
print(f"文件 {file_path} 不存在!")
|
||
return []
|
||
except json.JSONDecodeError:
|
||
print(f"文件 {file_path} 格式错误!")
|
||
return []
|
||
|
||
|
||
def do_sign(phone, user_name, ck):
|
||
headers = {
|
||
"user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 ali213app"
|
||
}
|
||
cookies = {
|
||
"api3AliSSO": ck
|
||
}
|
||
try:
|
||
response = requests.get("https://api3.ali213.net/feedearn/luckybox?action=get", headers=headers,cookies=cookies)
|
||
response.raise_for_status()
|
||
response_json = response.json()
|
||
if response_json['logined']:
|
||
print(f"账号 [{phone}][{user_name}] 登录成功,CK有效")
|
||
print(f"账号 [{phone}][{user_name}] {response_json['data']['msg']}")
|
||
if response_json['data']['status'] == 1 and response_json['data']['msg'] == '领取成功':
|
||
print(f"账号 [{phone}][{user_name}] 获得{response_json['data']['coins']}金币")
|
||
else:
|
||
print(f"账号 [{phone}][{user_name}] 登录失败,CK无效")
|
||
log(f"账号 [{phone}][{user_name}] 登录失败,CK无效")
|
||
except requests.exceptions.RequestException as e:
|
||
print(f"请求失败: {e}")
|
||
except json.JSONDecodeError as e:
|
||
print(f"JSON解析错误: {e}")
|
||
except Exception as e:
|
||
print(f"其他错误: {e}")
|
||
|
||
|
||
if __name__ == '__main__':
|
||
user_data = get_user_ids_and_tokens()
|
||
if not user_data:
|
||
print("未读取到用户数据,程序退出")
|
||
exit(0)
|
||
else:
|
||
print(f"读取到{len(user_data)}个账号")
|
||
|
||
for item in user_data:
|
||
phone = item['phone_key']
|
||
user_name = item['user_name']
|
||
ck = item['api3AliSSO']
|
||
do_sign(phone, user_name, ck)
|
||
time.sleep(1)
|
||
print("-" * 50)
|
||
|
||
try:
|
||
send_notification_message(title='游侠网开宝箱') # 发送通知
|
||
except Exception as e:
|
||
print('推送失败:' + str(e))
|