# coding:utf-8 import sys import asyncio from os.path import abspath, dirname, join from playwright.async_api import async_playwright sys.path.append(join(dirname(abspath(__file__)), "../")) from utils import push_msg from __init__ import ( browser_headless, browser_proxy, vits_url, vits_cookie_file, vits_title, vits_logger, vits_img, ) # 判断登录状态 async def is_login(page): await page.goto(vits_url) if await page.get_by_text("Pause Space").is_visible(): vits_logger.info("登录成功") return True else: stderr = "Cookie 过期" vits_logger.error(stderr) push_msg(vits_title, stderr, vits_img) return False # 签到 async def sign(page): if not await is_login(page): return "vits_not_login" if await page.get_by_role("button", name="Restart space").is_visible(): await page.get_by_role("button", name="Restart space").click() sign_res = "restart vits server success" vits_logger.info(sign_res) else: sign_res = "restart vits server failed" vits_logger.error(sign_res) return sign_res async def vits_sign(): async with async_playwright() as playwright: browser = await playwright.chromium.launch(headless=browser_headless) context = await browser.new_context(storage_state=vits_cookie_file) sign_page = await context.new_page() sign_task = asyncio.create_task(sign(sign_page)) await asyncio.gather(sign_task) await sign_page.close() # 退出 await browser.close() # 推送 sign_result = sign_task.result() push_msg(vits_title, sign_result, vits_img) if __name__ == "__main__": asyncio.run(vits_sign())