12306/inter/CheckUser.py

40 lines
1.7 KiB
Python
Raw Normal View History

# coding=utf-8
import datetime
2019-09-11 11:41:09 +00:00
import random
2019-01-07 03:44:06 +00:00
import time
import wrapcache
2019-01-06 04:16:45 +00:00
from config import configCommon
from config.TicketEnmu import ticket
class checkUser:
def __init__(self, session):
self.session = session
def sendCheckUser(self):
"""
检查用户登录, 检查间隔为2分钟
:return:
"""
2019-09-15 00:35:31 +00:00
CHENK_TIME = 1
2019-01-04 01:38:40 +00:00
while 1:
2019-09-15 00:35:31 +00:00
time.sleep(3) # 防止cpu占用过高
configCommon.checkSleepTime(self.session) # 修复晚上查询线程休眠时,检查登录线程为休眠,造成快豆迅速消耗
2019-01-04 01:38:40 +00:00
if wrapcache.get("user_time") is None:
check_user_url = self.session.urls["check_user_url"]
data = {"_json_att": ""}
check_user = self.session.httpClint.send(check_user_url, data)
if check_user.get("data", False):
check_user_flag = check_user["data"]["flag"]
if check_user_flag is True:
2019-09-11 11:41:09 +00:00
wrapcache.set("user_time", datetime.datetime.now(), timeout=random.randint(60, 80) * CHENK_TIME)
else:
2019-01-04 01:38:40 +00:00
if check_user['messages']:
print(ticket.LOGIN_SESSION_FAIL.format(check_user['messages']))
2019-01-04 01:38:40 +00:00
self.session.call_login()
2019-09-11 11:41:09 +00:00
wrapcache.set("user_time", datetime.datetime.now(), timeout=random.randint(60, 80) * CHENK_TIME)
2019-01-04 01:38:40 +00:00
else:
print(ticket.LOGIN_SESSION_FAIL.format(check_user['messages']))
2019-01-04 01:38:40 +00:00
self.session.call_login()
2019-09-11 11:41:09 +00:00
wrapcache.set("user_time", datetime.datetime.now(), timeout=random.randint(60, 80) * CHENK_TIME)