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

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

144
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,44 +21,46 @@ 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):
'Accept': 'application/json, text/plain, */*', header={
'Accept-Encoding': 'gzip, deflate, br', 'Accept': 'application/json, text/plain, */*',
'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-Encoding': 'gzip, deflate, br',
'Authorization': str(cookie), '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',
'Connection': 'keep-alive', 'Authorization': str(cookie),
'Content-Length': '0', 'Connection': 'keep-alive',
'Host': 'n.cg.163.com', 'Content-Length': '0',
'Origin': 'https://cg.163.com', 'Host': 'n.cg.163.com',
'Referer': 'https://cg.163.com/', 'Origin': 'https://cg.163.com',
'Sec-Fetch-Dest': 'empty', 'Referer': 'https://cg.163.com/',
'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Site': 'same-site', 'Sec-Fetch-Mode': 'cors',
'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', 'Sec-Fetch-Site': 'same-site',
'X-Platform': '0' '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'
}
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=[]
if(me.status_code!=200): failure=[]
message='[网易云游戏自动签到]验证失败请检查Cookie是否过期或者附上报错信息到 https://github.com/GamerNoTitle/wyycg-autosignin/issues 发起issue' msg=[]
send(teleid,message) print(len(cookies))
scsend(sckey,message) for i in cookies:
print(message) print(i)
raise GetInfoError cookie=i
sign=signin(sign,signheader) me=getme(current,cookie)
if(sign.status_code==200):
message='[网易云游戏自动签到]签到成功!' if(me.status_code!=200):
send(teleid,message) message='{}个账号验证失败请检查Cookie是否过期或者附上报错信息到 https://github.com/GamerNoTitle/wyycg-autosignin/issues 发起issue'.format(cookies.index(i)+1)
scsend(sckey,message) failure.append(cookie)
print(message) msg.append(message)
else:
message='[网易云游戏自动签到]签到失败,回显状态码为{}\n具体错误信息如下:\n{}'.format(sign.status_code,sign.text) sign=signin(sign,cookie)
send(teleid,message)
scsend(sckey,message) if(sign.status_code==200):
print(message) message='{}个账号签到成功!'.format(cookies.index(i)+1)
raise(CheckInError) success.append(cookie)
msg.append(message)
else:
print("fail")
message='{}个账号签到失败,回显状态码为{}\n具体错误信息如下:\n{}'.format(cookies.index(i)+1,sign.status_code,sign.text)
failure.append(cookie)
msg.append(message)
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