This commit is contained in:
InfinityPacer
2024-07-28 05:12:27 +08:00
7 changed files with 69 additions and 13 deletions

View File

@@ -3,11 +3,12 @@
"name": "站点自动签到",
"description": "自动模拟登录、签到站点。",
"labels": "站点",
"version": "2.4",
"version": "2.4.1",
"icon": "signin.png",
"author": "thsrite",
"level": 2,
"history": {
"v2.4.1": "修复海胆签到失败问题",
"v2.4": "适配m-team Api地址变化",
"v2.3.2": "修复YemaPT登录失败支持YemaPT自动签到",
"v2.3.1": "修复签到报错问题",
@@ -31,11 +32,13 @@
"name": "站点数据统计",
"description": "自动统计和展示站点数据。",
"labels": "站点,仪表板",
"version": "3.9.1",
"version": "3.9.3",
"icon": "statistic.png",
"author": "lightolly",
"level": 2,
"history": {
"v3.9.3": "修复PTT的用户等级统计",
"v3.9.2": "修复YemaPT的上传下载统计错误",
"v3.9.1": "修复mteam域名地址",
"v3.9": "修复YemaPT站点数据统计",
"v3.8": "适配m-team Api地址变化",
@@ -169,10 +172,13 @@
"name": "播放限速",
"description": "外网播放媒体库视频时,自动对下载器进行限速。",
"labels": "网络",
"version": "1.1",
"version": "1.2",
"icon": "Librespeed_A.png",
"author": "Shurelol",
"level": 1
"level": 1,
"history": {
"v1.2": "增加不限速路径配置,以应对网盘直链播放的情况"
}
},
"CloudflareSpeedTest": {
"name": "Cloudflare IP优选",

View File

@@ -38,7 +38,7 @@ class AutoSignIn(_PluginBase):
# 插件图标
plugin_icon = "signin.png"
# 插件版本
plugin_version = "2.4"
plugin_version = "2.4.1"
# 插件作者
plugin_author = "thsrite"
# 作者主页

View File

@@ -39,7 +39,15 @@ class HaiDan(_ISiteSigninHandler):
render = site_info.get("render")
# 签到
html_text = self.get_page_source(url='https://www.haidan.video/signin.php',
# 签到页会重定向到index.php由于302重定向特性导致index.php没有携带cookie
self.get_page_source(url='https://www.haidan.video/signin.php',
cookie=site_cookie,
ua=ua,
proxy=proxy,
render=render)
# 重新携带cookie获取index.php查看签到结果
html_text = self.get_page_source(url='https://www.haidan.video/index.php',
cookie=site_cookie,
ua=ua,
proxy=proxy,

View File

@@ -43,7 +43,7 @@ class SiteStatistic(_PluginBase):
# 插件图标
plugin_icon = "statistic.png"
# 插件版本
plugin_version = "3.9.1"
plugin_version = "3.9.3"
# 插件作者
plugin_author = "lightolly"
# 作者主页

View File

@@ -340,6 +340,12 @@ class NexusPhpSiteUserInfo(ISiteUserInfo):
self.user_level = user_levels_text[0].xpath("string(.)").strip()
return
# 适配PTT用户等级
user_levels_text = html.xpath('//tr/td[text()="用户等级"]/following-sibling::td[1]/b/@title')
if user_levels_text:
self.user_level = user_levels_text[0].strip()
return
user_levels_text = html.xpath('//a[contains(@href, "userdetails")]/text()')
if not self.user_level and user_levels_text:
for user_level_text in user_levels_text:

View File

@@ -62,8 +62,8 @@ class TYemaSiteUserInfo(ISiteUserInfo):
self.user_level = user_info.get("level")
self.join_at = StringUtils.unify_datetime_str(user_info.get("registerTime"))
self.upload = user_info.get('uploadSize')
self.download = user_info.get('downloadSize')
self.upload = user_info.get('promotionUploadSize')
self.download = user_info.get('promotionDownloadSize')
self.ratio = round(self.upload / (self.download or 1), 2)
self.bonus = user_info.get("bonus")
self.message_unread = 0

View File

@@ -23,7 +23,7 @@ class SpeedLimiter(_PluginBase):
# 插件图标
plugin_icon = "Librespeed_A.png"
# 插件版本
plugin_version = "1.1"
plugin_version = "1.2"
# 插件作者
plugin_author = "Shurelol"
# 作者主页
@@ -55,6 +55,7 @@ class SpeedLimiter(_PluginBase):
_unlimited_ips = {}
# 当前限速状态
_current_state = ""
_exclude_path = ""
def init_plugin(self, config: dict = None):
# 读取配置
@@ -66,6 +67,8 @@ class SpeedLimiter(_PluginBase):
self._noplay_up_speed = float(config.get("noplay_up_speed")) if config.get("noplay_up_speed") else 0
self._noplay_down_speed = float(config.get("noplay_down_speed")) if config.get("noplay_down_speed") else 0
self._current_state = f"U:{self._noplay_up_speed},D:{self._noplay_down_speed}"
self._exclude_path = config.get("exclude_path")
try:
# 总带宽
self._bandwidth = int(float(config.get("bandwidth") or 0)) * 1000000
@@ -355,6 +358,23 @@ class SpeedLimiter(_PluginBase):
}
}
]
},
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 6
},
'content': [
{
'component': 'VTextField',
'props': {
'model': 'exclude_path',
'label': '不限速路径',
'placeholder': '包含该路径的媒体不限速,多个请换行'
}
}
]
}
]
}
@@ -371,7 +391,8 @@ class SpeedLimiter(_PluginBase):
"bandwidth": None,
"allocation_ratio": "",
"ipv4": "",
"ipv6": ""
"ipv6": "",
"exclude_path": ""
}
def get_page(self) -> List[dict]:
@@ -415,7 +436,9 @@ class SpeedLimiter(_PluginBase):
sessions = res.json()
for session in sessions:
if session.get("NowPlayingItem") and not session.get("PlayState", {}).get("IsPaused"):
playing_sessions.append(session)
if not self.__path_execluded(session.get("NowPlayingItem").get("Path")):
playing_sessions.append(session)
except Exception as e:
logger.error(f"获取Emby播放会话失败{str(e)}")
continue
@@ -438,7 +461,8 @@ class SpeedLimiter(_PluginBase):
sessions = res.json()
for session in sessions:
if session.get("NowPlayingItem") and not session.get("PlayState", {}).get("IsPaused"):
playing_sessions.append(session)
if not self.__path_execluded(session.get("NowPlayingItem").get("Path")):
playing_sessions.append(session)
except Exception as e:
logger.error(f"获取Jellyfin播放会话失败{str(e)}")
continue
@@ -495,6 +519,18 @@ class SpeedLimiter(_PluginBase):
self.__set_limiter(limit_type="未播放", upload_limit=self._noplay_up_speed,
download_limit=self._noplay_down_speed)
def __path_execluded(self, path: str) -> bool:
"""
判断是否在不限速路径内
"""
if self._exclude_path:
exclude_paths = self._exclude_path.split("\n")
for exclude_path in exclude_paths:
if exclude_path in path:
logger.info(f"{path} 在不限速路径:{exclude_path} 内,跳过限速")
return True
return False
def __calc_limit(self, total_bit_rate: float) -> float:
"""
计算智能上传限速