sig / _playwright /vits.py
Evilmass
add gotify img
6ed2c3e
# 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())