File size: 1,886 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 69 70 71 72 73 74 |
# 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,
v2ex_url,
v2ex_sign_url,
v2ex_cookie_file,
v2ex_title,
v2ex_logger,
v2ex_img,
)
# 判断登录状态
async def is_login(page):
await page.goto(v2ex_url)
if await page.get_by_text("记事本").is_visible():
v2ex_logger.info("登录成功")
return True
else:
stderr = "Cookie 过期"
v2ex_logger.error(stderr)
push_msg(v2ex_title, stderr, v2ex_img)
return False
# 签到
async def sign(page):
msg = []
if not await is_login(page):
return "v2ex_not_login"
await page.goto(v2ex_sign_url)
if await page.get_by_text("每日登录奖励已领取").is_visible():
sign_res = "今日铜币已领取"
v2ex_logger.info(sign_res)
msg.append(sign_res)
else:
await page.get_by_text("领取 X 铜币").click()
sign_res = "领取铜币成功"
v2ex_logger.info(sign_res)
msg.append(sign_res)
return "\n".join(msg)
async def v2ex_sign():
async with async_playwright() as playwright:
browser = await playwright.chromium.launch(headless=browser_headless)
context = await browser.new_context(storage_state=v2ex_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(v2ex_title, "\n".join([sign_result]), v2ex_img)
if __name__ == "__main__":
asyncio.run(v2ex_sign())
|