File size: 1,772 Bytes
65d3d39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6ed2c3e
65d3d39
 
 
 
 
 
 
 
 
 
 
 
6ed2c3e
65d3d39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6ed2c3e
65d3d39
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# 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())