|
|
|
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, |
|
aliyundrive_url, |
|
aliyundrive_cookie_file, |
|
aliyundrive_title, |
|
aliyundrive_logger, |
|
) |
|
|
|
|
|
|
|
async def is_login(page): |
|
await page.goto(aliyundrive_url) |
|
|
|
if page.get_by_text("回收站").is_visible(): |
|
aliyundrive_logger.info("登录成功") |
|
return True |
|
else: |
|
stderr = "Cookie 过期" |
|
aliyundrive_logger.error(stderr) |
|
push_msg(aliyundrive_title, stderr) |
|
return False |
|
|
|
|
|
|
|
async def sign(page): |
|
msg = [] |
|
|
|
if not await is_login(page): |
|
return "aliyundrive_not_login" |
|
|
|
|
|
|
|
if page.get_by_text("待领取").is_visible(): |
|
sign_res = "今日已签到" |
|
aliyundrive_logger.info(sign_res) |
|
msg.append(sign_res) |
|
|
|
await page.get_by_text("待领取").click() |
|
reward_res = "今日领取奖励成功" |
|
aliyundrive_logger.info(reward_res) |
|
elif page.get_by_text("待签到").is_visible(): |
|
await page.get_by_text("待签到").click() |
|
sign_res = "签到成功" |
|
aliyundrive_logger.info(sign_res) |
|
msg.append(sign_res) |
|
else: |
|
reward_res = "今日奖励已领取" |
|
aliyundrive_logger.info(reward_res) |
|
return "\n".join(msg) |
|
|
|
|
|
async def main(): |
|
async with async_playwright() as playwright: |
|
browser = await playwright.chromium.launch(headless=browser_headless) |
|
context = await browser.new_context(storage_state=aliyundrive_cookie_file) |
|
page = await context.new_page() |
|
task = asyncio.create_task(sign(page)) |
|
await asyncio.gather(task) |
|
|
|
await page.close() |
|
await browser.close() |
|
|
|
result = task.result() |
|
push_msg(aliyundrive_title, "\n".join([result])) |
|
|
|
|
|
if __name__ == "__main__": |
|
asyncio.run(main()) |
|
|