|
@@ -28,17 +28,17 @@ class LoginCookiePool(CookiePoolInterface):
|
|
|
"""
|
|
|
|
|
|
def __init__(
|
|
|
- self,
|
|
|
- redis_key,
|
|
|
- *,
|
|
|
- login_site,
|
|
|
- table_userbase="feapder_login",
|
|
|
- table_login_record="feapder_login_record",
|
|
|
- login_state_key="login_state",
|
|
|
- lock_state_key="lock_state",
|
|
|
- username_key="username",
|
|
|
- password_key="password",
|
|
|
- login_retry_times=10,
|
|
|
+ self,
|
|
|
+ redis_key,
|
|
|
+ *,
|
|
|
+ login_site,
|
|
|
+ table_userbase="feapder_login",
|
|
|
+ table_login_record="feapder_login_record",
|
|
|
+ login_state_key="login_state",
|
|
|
+ lock_state_key="lock_state",
|
|
|
+ username_key="username",
|
|
|
+ password_key="password",
|
|
|
+ login_retry_times=10,
|
|
|
):
|
|
|
"""
|
|
|
@param redis_key: 项目名
|
|
@@ -108,14 +108,18 @@ class LoginCookiePool(CookiePoolInterface):
|
|
|
def save_cookie(self, username, cookie):
|
|
|
user_cookie = {"username": username, "cookie": cookie}
|
|
|
self._redisdb.lpush(self._tab_cookie_pool, user_cookie)
|
|
|
+ date_str = time.strftime(
|
|
|
+ "%Y-%m-%d %H:%M:%S",
|
|
|
+ time.localtime(int(round(time.time())))
|
|
|
+ )
|
|
|
self._mongo.add(
|
|
|
coll_name=self._table_login_record,
|
|
|
- data={self._login_state_key: 1,
|
|
|
- "status": "create",
|
|
|
- "site": self._login_site,
|
|
|
- "login_time": time.strftime("%Y-%m-%d %H:%M:%S",
|
|
|
- time.localtime(
|
|
|
- int(round(time.time()))))},
|
|
|
+ data={
|
|
|
+ self._login_state_key: 1,
|
|
|
+ "status": "create",
|
|
|
+ "site": self._login_site,
|
|
|
+ "login_time": date_str
|
|
|
+ },
|
|
|
update_columns=self._username_key,
|
|
|
update_columns_value=username)
|
|
|
|
|
@@ -171,9 +175,7 @@ class LoginCookiePool(CookiePoolInterface):
|
|
|
update_columns_value=user.username)
|
|
|
|
|
|
def run(self):
|
|
|
- with RedisLock(
|
|
|
- key=self._tab_cookie_pool, lock_timeout=3600, wait_timeout=100
|
|
|
- ) as _lock:
|
|
|
+ with RedisLock(key=self._tab_cookie_pool, lock_timeout=3600, wait_timeout=100) as _lock:
|
|
|
if _lock.locked:
|
|
|
user_infos = self.get_user_info()
|
|
|
if not isinstance(user_infos, Iterable):
|
|
@@ -191,8 +193,7 @@ class LoginCookiePool(CookiePoolInterface):
|
|
|
if cookie:
|
|
|
self.save_cookie(username, cookie)
|
|
|
else:
|
|
|
- self.handle_login_failed_user(username,
|
|
|
- password)
|
|
|
+ self.handle_login_failed_user(username, password)
|
|
|
|
|
|
break
|
|
|
except Exception as e:
|