From 262bda94c400b450fa72f6d39697ac5bfa77386e Mon Sep 17 00:00:00 2001 From: thsrite Date: Sat, 28 Oct 2023 18:52:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix=20=E7=9B=AE=E5=BD=95=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=B6=88=E6=81=AF=E5=BB=B6=E8=BF=9F=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/plugins/dirmonitor/__init__.py | 51 +++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/app/plugins/dirmonitor/__init__.py b/app/plugins/dirmonitor/__init__.py index ef9d9c54..18c87019 100644 --- a/app/plugins/dirmonitor/__init__.py +++ b/app/plugins/dirmonitor/__init__.py @@ -88,6 +88,7 @@ class DirMonitor(_PluginBase): _transfer_type = settings.TRANSFER_TYPE _monitor_dirs = "" _exclude_keywords = "" + _interval = 10 # 存储源目录与目的目录关系 _dirconf: Dict[str, Optional[Path]] = {} # 存储源目录转移方式 @@ -114,6 +115,7 @@ class DirMonitor(_PluginBase): self._transfer_type = config.get("transfer_type") self._monitor_dirs = config.get("monitor_dirs") or "" self._exclude_keywords = config.get("exclude_keywords") or "" + self._interval = config.get("interval") or 10 # 停止现有任务 self.stop_service() @@ -227,7 +229,8 @@ class DirMonitor(_PluginBase): "mode": self._mode, "transfer_type": self._transfer_type, "monitor_dirs": self._monitor_dirs, - "exclude_keywords": self._exclude_keywords + "exclude_keywords": self._exclude_keywords, + "interval": self._interval }) @eventmanager.register(EventType.DirectorySync) @@ -536,7 +539,8 @@ class DirMonitor(_PluginBase): file_meta = media_files[0].get("file_meta") mediainfo = media_files[0].get("mediainfo") # 判断剧集最后更新时间距现在是已超过10秒或者电影,发送消息 - if (datetime.datetime.now() - last_update_time).total_seconds() > 10 or mediainfo.type == MediaType.MOVIE: + if (datetime.datetime.now() - last_update_time).total_seconds() > self._interval \ + or mediainfo.type == MediaType.MOVIE: # 发送通知 if self._notify: @@ -681,7 +685,7 @@ class DirMonitor(_PluginBase): 'component': 'VCol', 'props': { 'cols': 12, - 'md': 6 + 'md': 4 }, 'content': [ { @@ -701,7 +705,7 @@ class DirMonitor(_PluginBase): 'component': 'VCol', 'props': { 'cols': 12, - 'md': 6 + 'md': 4 }, 'content': [ { @@ -720,6 +724,23 @@ class DirMonitor(_PluginBase): } } ] + }, + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 4 + }, + 'content': [ + { + 'component': 'VTextField', + 'props': { + 'model': 'interval', + 'label': '入库消息延迟', + 'placeholder': '10' + } + } + ] } ] }, @@ -770,6 +791,25 @@ class DirMonitor(_PluginBase): ] } ] + }, + { + 'component': 'VRow', + 'content': [ + { + 'component': 'VCol', + 'props': { + 'cols': 12, + }, + 'content': [ + { + 'component': 'VAlert', + 'props': { + 'text': '入库消息延迟默认10s,如网络较慢可酌情调大,有助于发送统一入库消息。' + } + } + ] + } + ] } ] } @@ -780,7 +820,8 @@ class DirMonitor(_PluginBase): "mode": "fast", "transfer_type": settings.TRANSFER_TYPE, "monitor_dirs": "", - "exclude_keywords": "" + "exclude_keywords": "", + "interval": 10 } def get_page(self) -> List[dict]: From 88747236327c408b565e620915ebfc5e15ecd885 Mon Sep 17 00:00:00 2001 From: thsrite Date: Sat, 28 Oct 2023 19:14:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix=20=E8=AE=A4=E8=AF=81=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E5=90=8E=E6=8F=92=E4=BB=B6=E7=AB=99=E7=82=B9=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/plugins/autosignin/__init__.py | 7 ++++--- app/plugins/iyuuautoseed/__init__.py | 21 +++++++++++++++++---- app/plugins/sitestatistic/__init__.py | 6 +++--- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/plugins/autosignin/__init__.py b/app/plugins/autosignin/__init__.py index 16eef291..04fe6d0b 100644 --- a/app/plugins/autosignin/__init__.py +++ b/app/plugins/autosignin/__init__.py @@ -96,9 +96,10 @@ class AutoSignIn(_PluginBase): self._clean = config.get("clean") # 过滤掉已删除的站点 - all_sites = [site for site in self.sites.get_indexers() if not site.get("public")] + self.__custom_sites() - self._sign_sites = [site.get("id") for site in all_sites if site.get("id") in self._sign_sites] - self._login_sites = [site.get("id") for site in all_sites if site.get("id") in self._login_sites] + all_sites = [site.id for site in self.siteoper.list_order_by_pri()] + [site.get("id") for site in + self.__custom_sites()] + self._sign_sites = [site_id for site_id in all_sites if site_id in self._sign_sites] + self._login_sites = [site_id for site_id in all_sites if site_id in self._login_sites] # 保存配置 self.__update_config() diff --git a/app/plugins/iyuuautoseed/__init__.py b/app/plugins/iyuuautoseed/__init__.py index 0056f2f1..b378c5ac 100644 --- a/app/plugins/iyuuautoseed/__init__.py +++ b/app/plugins/iyuuautoseed/__init__.py @@ -115,8 +115,9 @@ class IYUUAutoSeed(_PluginBase): self._success_caches = [] if self._clearcache else config.get("success_caches") or [] # 过滤掉已删除的站点 - self._sites = [site.get("id") for site in self.sites.get_indexers() if - not site.get("public") and site.get("id") in self._sites] + all_sites = [site.id for site in self.siteoper.list_order_by_pri()] + [site.get("id") for site in + self.__custom_sites()] + self._sites = [site_id for site_id in all_sites if site_id in self._sites] self.__update_config() # 停止现有任务 @@ -175,9 +176,14 @@ class IYUUAutoSeed(_PluginBase): """ 拼装插件配置页面,需要返回两块数据:1、页面配置;2、数据结构 """ + # 站点的可选项(内置站点 + 自定义站点) + customSites = self.__custom_sites() + # 站点的可选项 - site_options = [{"title": site.name, "value": site.id} - for site in self.siteoper.list_order_by_pri()] + site_options = ([{"title": site.name, "value": site.id} + for site in self.siteoper.list_order_by_pri()] + + [{"title": site.get("name"), "value": site.get("id")} + for site in customSites]) return [ { 'component': 'VForm', @@ -986,6 +992,13 @@ class IYUUAutoSeed(_PluginBase): except Exception as e: print(str(e)) + def __custom_sites(self) -> List[Any]: + custom_sites = [] + custom_sites_config = self.get_config("CustomSites") + if custom_sites_config and custom_sites_config.get("enabled"): + custom_sites = custom_sites_config.get("sites") + return custom_sites + @eventmanager.register(EventType.SiteDeleted) def site_deleted(self, event): """ diff --git a/app/plugins/sitestatistic/__init__.py b/app/plugins/sitestatistic/__init__.py index acbae153..9ba89c26 100644 --- a/app/plugins/sitestatistic/__init__.py +++ b/app/plugins/sitestatistic/__init__.py @@ -89,9 +89,9 @@ class SiteStatistic(_PluginBase): self._statistic_sites = config.get("statistic_sites") or [] # 过滤掉已删除的站点 - all_sites = [site for site in self.sites.get_indexers() if not site.get("public")] + self.__custom_sites() - self._statistic_sites = [site.get("id") for site in all_sites if - not site.get("public") and site.get("id") in self._statistic_sites] + all_sites = [site.id for site in self.siteoper.list_order_by_pri()] + [site.get("id") for site in + self.__custom_sites()] + self._statistic_sites = [site_id for site_id in all_sites if site_id in self._statistic_sites] self.__update_config() if self._enabled or self._onlyonce: