feat: 抖音登录态检测逻辑更新支持

This commit is contained in:
Relakkes
2024-05-23 22:15:14 +08:00
parent 3c4695eed7
commit 764bafc626
7 changed files with 23 additions and 10 deletions

View File

@@ -86,10 +86,12 @@ class DOUYINClient(AbstractApiClient):
headers = headers or self.headers
return await self.request(method="POST", url=f"{self._host}{uri}", data=data, headers=headers)
@staticmethod
async def pong(browser_context: BrowserContext) -> bool:
async def pong(self, browser_context: BrowserContext) -> bool:
local_storage = await self.playwright_page.evaluate("() => window.localStorage")
if local_storage.get("HasUserLogin", "") == "1":
return True
_, cookie_dict = utils.convert_cookies(await browser_context.cookies())
# todo send some api to test login status
return cookie_dict.get("LOGIN_STATUS") == "1"
async def update_cookies(self, browser_context: BrowserContext):

View File

@@ -73,8 +73,19 @@ class DouYinLogin(AbstractLogin):
"""Check if the current login status is successful and return True otherwise return False"""
current_cookie = await self.browser_context.cookies()
_, cookie_dict = utils.convert_cookies(current_cookie)
for page in self.browser_context.pages:
try:
local_storage = await page.evaluate("() => window.localStorage")
if local_storage.get("HasUserLogin", "") == "1":
return True
except Exception as e:
utils.logger.warn(f"[DouYinLogin] check_login_state waring: {e}")
await asyncio.sleep(1)
if cookie_dict.get("LOGIN_STATUS") == "1":
return True
return False
async def popup_login_dialog(self):