Merge pull request #1003 from thsrite/main

This commit is contained in:
jxxghp 2023-10-28 19:31:29 +08:00 committed by GitHub
commit 7ac881e3e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 70 additions and 15 deletions

View File

@ -96,9 +96,10 @@ class AutoSignIn(_PluginBase):
self._clean = config.get("clean") self._clean = config.get("clean")
# 过滤掉已删除的站点 # 过滤掉已删除的站点
all_sites = [site for site in self.sites.get_indexers() if not site.get("public")] + self.__custom_sites() all_sites = [site.id for site in self.siteoper.list_order_by_pri()] + [site.get("id") for site in
self._sign_sites = [site.get("id") for site in all_sites if site.get("id") in self._sign_sites] self.__custom_sites()]
self._login_sites = [site.get("id") for site in all_sites if site.get("id") in self._login_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() self.__update_config()

View File

@ -88,6 +88,7 @@ class DirMonitor(_PluginBase):
_transfer_type = settings.TRANSFER_TYPE _transfer_type = settings.TRANSFER_TYPE
_monitor_dirs = "" _monitor_dirs = ""
_exclude_keywords = "" _exclude_keywords = ""
_interval = 10
# 存储源目录与目的目录关系 # 存储源目录与目的目录关系
_dirconf: Dict[str, Optional[Path]] = {} _dirconf: Dict[str, Optional[Path]] = {}
# 存储源目录转移方式 # 存储源目录转移方式
@ -114,6 +115,7 @@ class DirMonitor(_PluginBase):
self._transfer_type = config.get("transfer_type") self._transfer_type = config.get("transfer_type")
self._monitor_dirs = config.get("monitor_dirs") or "" self._monitor_dirs = config.get("monitor_dirs") or ""
self._exclude_keywords = config.get("exclude_keywords") or "" self._exclude_keywords = config.get("exclude_keywords") or ""
self._interval = config.get("interval") or 10
# 停止现有任务 # 停止现有任务
self.stop_service() self.stop_service()
@ -227,7 +229,8 @@ class DirMonitor(_PluginBase):
"mode": self._mode, "mode": self._mode,
"transfer_type": self._transfer_type, "transfer_type": self._transfer_type,
"monitor_dirs": self._monitor_dirs, "monitor_dirs": self._monitor_dirs,
"exclude_keywords": self._exclude_keywords "exclude_keywords": self._exclude_keywords,
"interval": self._interval
}) })
@eventmanager.register(EventType.DirectorySync) @eventmanager.register(EventType.DirectorySync)
@ -536,7 +539,8 @@ class DirMonitor(_PluginBase):
file_meta = media_files[0].get("file_meta") file_meta = media_files[0].get("file_meta")
mediainfo = media_files[0].get("mediainfo") mediainfo = media_files[0].get("mediainfo")
# 判断剧集最后更新时间距现在是已超过10秒或者电影发送消息 # 判断剧集最后更新时间距现在是已超过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: if self._notify:
@ -681,7 +685,7 @@ class DirMonitor(_PluginBase):
'component': 'VCol', 'component': 'VCol',
'props': { 'props': {
'cols': 12, 'cols': 12,
'md': 6 'md': 4
}, },
'content': [ 'content': [
{ {
@ -701,7 +705,7 @@ class DirMonitor(_PluginBase):
'component': 'VCol', 'component': 'VCol',
'props': { 'props': {
'cols': 12, 'cols': 12,
'md': 6 'md': 4
}, },
'content': [ '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", "mode": "fast",
"transfer_type": settings.TRANSFER_TYPE, "transfer_type": settings.TRANSFER_TYPE,
"monitor_dirs": "", "monitor_dirs": "",
"exclude_keywords": "" "exclude_keywords": "",
"interval": 10
} }
def get_page(self) -> List[dict]: def get_page(self) -> List[dict]:

View File

@ -115,8 +115,9 @@ class IYUUAutoSeed(_PluginBase):
self._success_caches = [] if self._clearcache else config.get("success_caches") or [] 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 all_sites = [site.id for site in self.siteoper.list_order_by_pri()] + [site.get("id") for site in
not site.get("public") and site.get("id") in self._sites] self.__custom_sites()]
self._sites = [site_id for site_id in all_sites if site_id in self._sites]
self.__update_config() self.__update_config()
# 停止现有任务 # 停止现有任务
@ -175,9 +176,14 @@ class IYUUAutoSeed(_PluginBase):
""" """
拼装插件配置页面需要返回两块数据1页面配置2数据结构 拼装插件配置页面需要返回两块数据1页面配置2数据结构
""" """
# 站点的可选项(内置站点 + 自定义站点)
customSites = self.__custom_sites()
# 站点的可选项 # 站点的可选项
site_options = [{"title": site.name, "value": site.id} site_options = ([{"title": site.name, "value": site.id}
for site in self.siteoper.list_order_by_pri()] for site in self.siteoper.list_order_by_pri()]
+ [{"title": site.get("name"), "value": site.get("id")}
for site in customSites])
return [ return [
{ {
'component': 'VForm', 'component': 'VForm',
@ -986,6 +992,13 @@ class IYUUAutoSeed(_PluginBase):
except Exception as e: except Exception as e:
print(str(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) @eventmanager.register(EventType.SiteDeleted)
def site_deleted(self, event): def site_deleted(self, event):
""" """

View File

@ -89,9 +89,9 @@ class SiteStatistic(_PluginBase):
self._statistic_sites = config.get("statistic_sites") or [] 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() all_sites = [site.id for site in self.siteoper.list_order_by_pri()] + [site.get("id") for site in
self._statistic_sites = [site.get("id") for site in all_sites if self.__custom_sites()]
not site.get("public") and site.get("id") in self._statistic_sites] self._statistic_sites = [site_id for site_id in all_sites if site_id in self._statistic_sites]
self.__update_config() self.__update_config()
if self._enabled or self._onlyonce: if self._enabled or self._onlyonce: