整理脚本逻辑并优化,加入多用户基础功能

This commit is contained in:
GamerNoTitle 2020-12-12 18:17:15 +08:00
parent 32c3c41ba5
commit aa9f09de71

108
main.py
View File

@ -8,11 +8,11 @@ sc_enable=False
sign='https://n.cg.163.com/api/v2/sign-today' sign='https://n.cg.163.com/api/v2/sign-today'
current='https://n.cg.163.com/api/v2/client-settings/@current' current='https://n.cg.163.com/api/v2/client-settings/@current'
cookie=sys.argv[1] cookies=sys.argv[1].split('#')
teleid=sys.argv[2] teleid="" #sys.argv[2]
teletoken=sys.argv[3] teletoken="" #sys.argv[3]
sckey=sys.argv[4] sckey=sys.argv[4]
if cookie=="": if cookies=="":
print('[网易云游戏自动签到]未设置cookie正在退出……') print('[网易云游戏自动签到]未设置cookie正在退出……')
sys.exit() sys.exit()
if teleid!="" and teletoken!="": if teleid!="" and teletoken!="":
@ -21,23 +21,11 @@ if teleid!="" and teletoken!="":
if sckey!="": if sckey!="":
sc_enable=True sc_enable=True
getheader={ class Error(Exception):
'Host': 'n.cg.163.com', pass
'Connection': 'keep-alive',
'Accept': 'application/json, text/plain, */*',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'X-Platform': '0',
'Authorization': str(cookie),
'Origin': 'https://cg.163.com',
'Sec-Fetch-Site': 'same-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Referer': 'https://cg.163.com/',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,ja-JP;q=0.6,ja;q=0.5'
}
signheader={ def signin(url,cookie):
header={
'Accept': 'application/json, text/plain, */*', 'Accept': 'application/json, text/plain, */*',
'Accept-Encoding': 'gzip, deflate, br', 'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,ja-JP;q=0.6,ja;q=0.5', 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,ja-JP;q=0.6,ja;q=0.5',
@ -54,11 +42,25 @@ signheader={
'X-Platform': '0' 'X-Platform': '0'
} }
def signin(url,header):
result=r.post(url=url,headers=header) result=r.post(url=url,headers=header)
return result return result
def getme(url,header): def getme(url,cookie):
header={
'Host': 'n.cg.163.com',
'Connection': 'keep-alive',
'Accept': 'application/json, text/plain, */*',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'X-Platform': '0',
'Authorization': str(cookie),
'Origin': 'https://cg.163.com',
'Sec-Fetch-Site': 'same-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Referer': 'https://cg.163.com/',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,ja-JP;q=0.6,ja;q=0.5'
}
result=r.get(url=url,headers=header) result=r.get(url=url,headers=header)
return result return result
@ -71,33 +73,43 @@ def scsend(SCKEY,message):
if sc_enable: if sc_enable:
r.get(url=sc_url) r.get(url=sc_url)
class ScriptError(Exception):
pass
class GetInfoError(ScriptError):
pass
class CheckInError(ScriptError):
pass
if __name__ == "__main__": if __name__ == "__main__":
me=getme(current,getheader) success=[]
failure=[]
msg=[]
print(len(cookies))
for i in cookies:
print(i)
cookie=i
me=getme(current,cookie)
if(me.status_code!=200): if(me.status_code!=200):
message='[网易云游戏自动签到]验证失败请检查Cookie是否过期或者附上报错信息到 https://github.com/GamerNoTitle/wyycg-autosignin/issues 发起issue' message='{}个账号验证失败请检查Cookie是否过期或者附上报错信息到 https://github.com/GamerNoTitle/wyycg-autosignin/issues 发起issue'.format(cookies.index(i)+1)
send(teleid,message) failure.append(cookie)
scsend(sckey,message) msg.append(message)
print(message)
raise GetInfoError sign=signin(sign,cookie)
sign=signin(sign,signheader)
if(sign.status_code==200): if(sign.status_code==200):
message='[网易云游戏自动签到]签到成功!' message='{}个账号签到成功!'.format(cookies.index(i)+1)
send(teleid,message) success.append(cookie)
scsend(sckey,message) msg.append(message)
print(message)
else: else:
message='[网易云游戏自动签到]签到失败,回显状态码为{}\n具体错误信息如下:\n{}'.format(sign.status_code,sign.text) print("fail")
send(teleid,message) message='{}个账号签到失败,回显状态码为{}\n具体错误信息如下:\n{}'.format(cookies.index(i)+1,sign.status_code,sign.text)
scsend(sckey,message) failure.append(cookie)
print(message) msg.append(message)
raise(CheckInError) outputmsg=str(msg).replace("[",'').replace(']','').replace(',','<br>').replace('\'','')
infomsg='''
感谢使用来自<a herf='https://bili33.top'>GamerNoTitle</a><a herf='https://github.com/GamerNoTitle/wyycg-autocheckin'>网易云游戏自动签到脚本</a><br>
今日签到结果如下<br>
成功数量{0}/{2}<br>
失败数量{1}/{2}<br>
具体情况如下<br>
{3}
'''.format(len(success),len(failure),len(cookies),outputmsg)
scsend(sckey,infomsg)
send(teleid,infomsg)
print(infomsg)
if(len(msg)!=0):
raise Error