mirror of
https://github.com/d0zingcat/MoviePilot-Plugins.git
synced 2026-05-13 15:09:12 +00:00
fix m-team
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"AutoSignIn": {
|
||||
"name": "站点自动签到",
|
||||
"description": "自动模拟登录站点、签到。",
|
||||
"version": "1.4",
|
||||
"version": "1.5",
|
||||
"icon": "signin.png",
|
||||
"author": "thsrite",
|
||||
"level": 2
|
||||
@@ -18,7 +18,7 @@
|
||||
"SiteStatistic": {
|
||||
"name": "站点数据统计",
|
||||
"description": "自动统计和展示站点数据。",
|
||||
"version": "2.0",
|
||||
"version": "2.1",
|
||||
"icon": "statistic.png",
|
||||
"author": "lightolly",
|
||||
"level": 2
|
||||
|
||||
@@ -12,6 +12,7 @@ from apscheduler.triggers.cron import CronTrigger
|
||||
from ruamel.yaml import CommentedMap
|
||||
|
||||
from app import schemas
|
||||
from app.chain.site import SiteChain
|
||||
from app.core.config import settings
|
||||
from app.core.event import EventManager, eventmanager, Event
|
||||
from app.db.site_oper import SiteOper
|
||||
@@ -36,7 +37,7 @@ class AutoSignIn(_PluginBase):
|
||||
# 插件图标
|
||||
plugin_icon = "signin.png"
|
||||
# 插件版本
|
||||
plugin_version = "1.4"
|
||||
plugin_version = "1.5"
|
||||
# 插件作者
|
||||
plugin_author = "thsrite"
|
||||
# 作者主页
|
||||
@@ -51,6 +52,7 @@ class AutoSignIn(_PluginBase):
|
||||
# 私有属性
|
||||
sites: SitesHelper = None
|
||||
siteoper: SiteOper = None
|
||||
sitechain: SiteChain = None
|
||||
# 事件管理器
|
||||
event: EventManager = None
|
||||
# 定时器
|
||||
@@ -76,6 +78,7 @@ class AutoSignIn(_PluginBase):
|
||||
self.sites = SitesHelper()
|
||||
self.siteoper = SiteOper()
|
||||
self.event = EventManager()
|
||||
self.sitechain = SiteChain()
|
||||
|
||||
# 停止现有任务
|
||||
self.stop_service()
|
||||
@@ -955,8 +958,7 @@ class AutoSignIn(_PluginBase):
|
||||
"""
|
||||
return site_info.get("name"), self.__login_base(site_info)
|
||||
|
||||
@staticmethod
|
||||
def __login_base(site_info: CommentedMap) -> str:
|
||||
def __login_base(self, site_info: CommentedMap) -> str:
|
||||
"""
|
||||
模拟登陆通用处理
|
||||
:param site_info: 站点信息
|
||||
@@ -964,61 +966,11 @@ class AutoSignIn(_PluginBase):
|
||||
"""
|
||||
if not site_info:
|
||||
return ""
|
||||
site = site_info.get("name")
|
||||
site_url = site_info.get("url")
|
||||
site_cookie = site_info.get("cookie")
|
||||
ua = site_info.get("ua")
|
||||
render = site_info.get("render")
|
||||
proxies = settings.PROXY if site_info.get("proxy") else None
|
||||
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
|
||||
if not site_url or not site_cookie:
|
||||
logger.warn(f"未配置 {site} 的站点地址或Cookie,无法签到")
|
||||
return ""
|
||||
# 模拟登录
|
||||
try:
|
||||
# 访问链接
|
||||
site_url = str(site_url).replace("attendance.php", "")
|
||||
logger.info(f"开始站点模拟登陆:{site},地址:{site_url}...")
|
||||
if render:
|
||||
page_source = PlaywrightHelper().get_page_source(url=site_url,
|
||||
cookies=site_cookie,
|
||||
ua=ua,
|
||||
proxies=proxy_server)
|
||||
if not SiteUtils.is_logged_in(page_source):
|
||||
if under_challenge(page_source):
|
||||
return f"无法通过Cloudflare!"
|
||||
return f"仿真登录失败,Cookie已失效!"
|
||||
else:
|
||||
return "模拟登陆成功"
|
||||
else:
|
||||
res = RequestUtils(cookies=site_cookie,
|
||||
ua=ua,
|
||||
proxies=proxies
|
||||
).get_res(url=site_url)
|
||||
# 判断登录状态
|
||||
if res and res.status_code in [200, 500, 403]:
|
||||
if not SiteUtils.is_logged_in(res.text):
|
||||
if under_challenge(res.text):
|
||||
msg = "站点被Cloudflare防护,请打开站点浏览器仿真"
|
||||
elif res.status_code == 200:
|
||||
msg = "Cookie已失效"
|
||||
else:
|
||||
msg = f"状态码:{res.status_code}"
|
||||
logger.warn(f"{site} 模拟登陆失败,{msg}")
|
||||
return f"模拟登陆失败,{msg}!"
|
||||
else:
|
||||
logger.info(f"{site} 模拟登陆成功")
|
||||
return f"模拟登陆成功"
|
||||
elif res is not None:
|
||||
logger.warn(f"{site} 模拟登陆失败,状态码:{res.status_code}")
|
||||
return f"模拟登陆失败,状态码:{res.status_code}!"
|
||||
else:
|
||||
logger.warn(f"{site} 模拟登陆失败,无法打开网站")
|
||||
return f"模拟登陆失败,无法打开网站!"
|
||||
except Exception as e:
|
||||
logger.warn("%s 模拟登陆失败:%s" % (site, str(e)))
|
||||
traceback.print_exc()
|
||||
return f"模拟登陆失败:{str(e)}!"
|
||||
state, msg = self.sitechain.test(site_info.get("url"))
|
||||
if state:
|
||||
return f"模拟登陆成功"
|
||||
else:
|
||||
return f"模拟登陆失败:{msg}"
|
||||
|
||||
def stop_service(self):
|
||||
"""
|
||||
|
||||
@@ -43,7 +43,7 @@ class SiteStatistic(_PluginBase):
|
||||
# 插件图标
|
||||
plugin_icon = "statistic.png"
|
||||
# 插件版本
|
||||
plugin_version = "2.0"
|
||||
plugin_version = "2.1"
|
||||
# 插件作者
|
||||
plugin_author = "lightolly"
|
||||
# 作者主页
|
||||
@@ -1263,10 +1263,10 @@ class SiteStatistic(_PluginBase):
|
||||
# 按照上传降序排序
|
||||
sites = self._sites_data.keys()
|
||||
uploads = [self._sites_data[site].get("upload") or 0 if not yesterday_sites_data.get(site) else
|
||||
(self._sites_data[site].get("upload") or 0) - (
|
||||
int(self._sites_data[site].get("upload") or 0) - int(
|
||||
yesterday_sites_data[site].get("upload") or 0) for site in sites]
|
||||
downloads = [self._sites_data[site].get("download") or 0 if not yesterday_sites_data.get(site) else
|
||||
(self._sites_data[site].get("download") or 0) - (
|
||||
int(self._sites_data[site].get("download") or 0) - int(
|
||||
yesterday_sites_data[site].get("download") or 0) for site in sites]
|
||||
data_list = sorted(list(zip(sites, uploads, downloads)),
|
||||
key=lambda x: x[1],
|
||||
|
||||
@@ -278,8 +278,6 @@ class ISiteUserInfo(metaclass=ABCMeta):
|
||||
proxies = settings.PROXY if self._proxy else None
|
||||
if self._ua or headers or self._addition_headers:
|
||||
req_headers = {}
|
||||
if headers:
|
||||
req_headers.update(headers)
|
||||
|
||||
req_headers.update({
|
||||
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
@@ -289,6 +287,9 @@ class ISiteUserInfo(metaclass=ABCMeta):
|
||||
if self._addition_headers:
|
||||
req_headers.update(self._addition_headers)
|
||||
|
||||
if headers:
|
||||
req_headers.update(headers)
|
||||
|
||||
if params:
|
||||
res = RequestUtils(cookies=self._site_cookie,
|
||||
session=self._session,
|
||||
|
||||
@@ -61,13 +61,13 @@ class MTorrentSiteUserInfo(ISiteUserInfo):
|
||||
self.upload = int(user_info.get("memberCount", {}).get("uploaded") or '0')
|
||||
self.download = int(user_info.get("memberCount", {}).get("downloaded") or '0')
|
||||
self.ratio = user_info.get("memberCount", {}).get("shareRate") or 0
|
||||
self.bonus = float(user_info.get("bonus") or '0')
|
||||
self.bonus = user_info.get("memberCount", {}).get("bonus") or 0
|
||||
self.message_unread = 1
|
||||
|
||||
self._torrent_seeding_params = {
|
||||
"pageNumber": "1",
|
||||
"pageSize": "20000",
|
||||
"type": "seeding",
|
||||
"pageNumber": 1,
|
||||
"pageSize": 20000,
|
||||
"type": "SEEDING",
|
||||
"userid": self.userid
|
||||
}
|
||||
|
||||
@@ -123,11 +123,18 @@ class MTorrentSiteUserInfo(ISiteUserInfo):
|
||||
return None
|
||||
messages = messages_info.get("data", {}).get("data", [])
|
||||
for message in messages:
|
||||
if not message.get("unread"):
|
||||
continue
|
||||
head = message.get("title")
|
||||
date = message.get("createdDate")
|
||||
content = message.get("context")
|
||||
if head and date and content:
|
||||
self.message_unread_contents.append((head, date, content))
|
||||
# 设置已读
|
||||
self._get_page_content(
|
||||
url=urljoin(self.site_url, f"api/msg/markRead"),
|
||||
params={"msgId": message.get("id")}
|
||||
)
|
||||
# 是否存在下页数据
|
||||
return None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user