Files
MoviePilot-Plugins/plugins/autosignin/sites/mteam.py
2024-03-24 21:32:49 +08:00

66 lines
2.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from typing import Tuple
from urllib.parse import urljoin
from ruamel.yaml import CommentedMap
from app.core.config import settings
from app.log import logger
from app.plugins.autosignin.sites import _ISiteSigninHandler
from app.utils.http import RequestUtils
class MTorrent(_ISiteSigninHandler):
"""
m-team签到
"""
# 匹配的站点Url每一个实现类都需要设置为自己的站点Url
site_url = "m-team"
@classmethod
def match(cls, url: str) -> bool:
"""
根据站点Url判断是否匹配当前站点签到类大部分情况使用默认实现即可
:param url: 站点Url
:return: 是否匹配如匹配则会调用该类的signin方法
"""
return True if cls.site_url in url.split(".") else False
def signin(self, site_info: CommentedMap) -> Tuple[bool, str]:
"""
执行签到操作,馒头实际没有签到,非仿真模式下需要更新访问时间
:param site_info: 站点信息含有站点Url、站点Cookie、UA等信息
:return: 签到结果信息
"""
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxy = site_info.get("proxy")
render = site_info.get("render")
url = site_info.get("url")
if render:
# 获取页面html
html_text = self.get_page_source(url=url,
cookie=site_cookie,
ua=ua,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"{site} 模拟登录失败,请检查站点连通性")
return False, '模拟登录失败,请检查站点连通性'
if "登 錄" in html_text:
logger.error(f"{site} 模拟登录失败Cookie已失效")
return False, '模拟登录失败Cookie已失效'
return True, '模拟登录成功'
else:
res = RequestUtils(cookies=site_cookie,
ua=ua,
timeout=60,
proxies=settings.PROXY if proxy else None
).post_res(url=urljoin(url, "api/member/updateLastBrowse"))
if res:
logger.info(f'{site}】模拟登录成功')
return True, f'模拟登录成功'
else:
logger.error(f"{site} 模拟登录失败,{res.status_code if res else '网络错误'}")
return False, f"模拟登录失败,{res.status_code if res else '网络错误'}"