From e4b95eb0a1a6601e0b4fe61a06f00365f2fa99b5 Mon Sep 17 00:00:00 2001 From: xuzhi Date: Fri, 12 Jul 2024 06:38:59 +0000 Subject: [PATCH 1/4] Update speedlimiter to v1.2 --- package.json | 7 +++-- plugins/speedlimiter/__init__.py | 44 +++++++++++++++++++++++++++++--- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index a76e7c3..28dc65b 100644 --- a/package.json +++ b/package.json @@ -169,10 +169,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优选", diff --git a/plugins/speedlimiter/__init__.py b/plugins/speedlimiter/__init__.py index 4700c6c..517f683 100644 --- a/plugins/speedlimiter/__init__.py +++ b/plugins/speedlimiter/__init__.py @@ -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: """ 计算智能上传限速 From f3a0cdba2ef6e5efa041f7c749d38fb6fd0da49b Mon Sep 17 00:00:00 2001 From: Doubly <1286398734@qq.com> Date: Wed, 24 Jul 2024 12:51:21 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E6=B5=B7?= =?UTF-8?q?=E8=83=86=E7=AD=BE=E5=88=B0=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++- plugins/autosignin/__init__.py | 2 +- plugins/autosignin/sites/haidan.py | 10 +++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 28dc65b..f7a5138 100644 --- a/package.json +++ b/package.json @@ -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": "修复签到报错问题", diff --git a/plugins/autosignin/__init__.py b/plugins/autosignin/__init__.py index 1c9a5a3..a3d21d0 100644 --- a/plugins/autosignin/__init__.py +++ b/plugins/autosignin/__init__.py @@ -38,7 +38,7 @@ class AutoSignIn(_PluginBase): # 插件图标 plugin_icon = "signin.png" # 插件版本 - plugin_version = "2.4" + plugin_version = "2.4.1" # 插件作者 plugin_author = "thsrite" # 作者主页 diff --git a/plugins/autosignin/sites/haidan.py b/plugins/autosignin/sites/haidan.py index 38a4af3..23f6b03 100644 --- a/plugins/autosignin/sites/haidan.py +++ b/plugins/autosignin/sites/haidan.py @@ -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, From 5a482b31bf8ab388644346c4d5820823ada64f24 Mon Sep 17 00:00:00 2001 From: Doubly <1286398734@qq.com> Date: Wed, 24 Jul 2024 14:58:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E9=87=8E?= =?UTF-8?q?=E9=A9=AC=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++- plugins/sitestatistic/__init__.py | 2 +- plugins/sitestatistic/siteuserinfo/yema.py | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index f7a5138..0af7ba9 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,12 @@ "name": "站点数据统计", "description": "自动统计和展示站点数据。", "labels": "站点,仪表板", - "version": "3.9.1", + "version": "3.9.2", "icon": "statistic.png", "author": "lightolly", "level": 2, "history": { + "v3.9.2": "修复YemaPT的上传下载统计错误", "v3.9.1": "修复mteam域名地址", "v3.9": "修复YemaPT站点数据统计", "v3.8": "适配m-team Api地址变化", diff --git a/plugins/sitestatistic/__init__.py b/plugins/sitestatistic/__init__.py index 752ee13..2002db8 100644 --- a/plugins/sitestatistic/__init__.py +++ b/plugins/sitestatistic/__init__.py @@ -43,7 +43,7 @@ class SiteStatistic(_PluginBase): # 插件图标 plugin_icon = "statistic.png" # 插件版本 - plugin_version = "3.9.1" + plugin_version = "3.9.2" # 插件作者 plugin_author = "lightolly" # 作者主页 diff --git a/plugins/sitestatistic/siteuserinfo/yema.py b/plugins/sitestatistic/siteuserinfo/yema.py index 636d55e..44a23d7 100644 --- a/plugins/sitestatistic/siteuserinfo/yema.py +++ b/plugins/sitestatistic/siteuserinfo/yema.py @@ -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 From bb84d573dcf901813489256fd471f4eeec44dc9b Mon Sep 17 00:00:00 2001 From: Doubly <1286398734@qq.com> Date: Wed, 24 Jul 2024 15:49:23 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8DPTT=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=AD=89=E7=BA=A7=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++- plugins/sitestatistic/__init__.py | 2 +- plugins/sitestatistic/siteuserinfo/nexus_php.py | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0af7ba9..3841555 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,12 @@ "name": "站点数据统计", "description": "自动统计和展示站点数据。", "labels": "站点,仪表板", - "version": "3.9.2", + "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站点数据统计", diff --git a/plugins/sitestatistic/__init__.py b/plugins/sitestatistic/__init__.py index 2002db8..90b2218 100644 --- a/plugins/sitestatistic/__init__.py +++ b/plugins/sitestatistic/__init__.py @@ -43,7 +43,7 @@ class SiteStatistic(_PluginBase): # 插件图标 plugin_icon = "statistic.png" # 插件版本 - plugin_version = "3.9.2" + plugin_version = "3.9.3" # 插件作者 plugin_author = "lightolly" # 作者主页 diff --git a/plugins/sitestatistic/siteuserinfo/nexus_php.py b/plugins/sitestatistic/siteuserinfo/nexus_php.py index e5efd06..c1deced 100644 --- a/plugins/sitestatistic/siteuserinfo/nexus_php.py +++ b/plugins/sitestatistic/siteuserinfo/nexus_php.py @@ -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: