支持青蛙辅种助手

This commit is contained in:
Allen
2024-05-06 11:22:00 +08:00
parent c22e8fe365
commit e20ae58163

View File

@@ -47,6 +47,8 @@ class MergeSiteSwitch(_PluginBase):
__plugin_id_iyuu_auto_seed: str = 'IYUUAutoSeed'
# 站点刷流
__plugin_id_brush_flow: str = 'BrushFlow'
# 青蛙辅种助手
__plugin_id_cross_seed: str = 'CrossSeed'
# 配置相关
# 插件缺省配置
@@ -370,6 +372,43 @@ class MergeSiteSwitch(_PluginBase):
}]
}]
})
# 青蛙辅种助手
if self.__plugin_id_cross_seed in installed_plugin_ids:
form_content.append({
'component': 'VRow',
'content': [{
'component': 'VCol',
'props': {
'cols': 12,
'xxl': 9, 'xl': 9, 'lg': 9, 'md': 9, 'sm': 8, 'xs': 12
},
'content': [{
'component': 'VSelect',
'props': {
'model': 'cross_seed_sites',
'label': '插件 / 青蛙辅种助手 / 辅种站点',
'multiple': True,
'chips': True,
'items': site_options,
'hint': '只有选中的站点才会在辅种中使用。'
}
}]
}, {
'component': 'VCol',
'props': {
'cols': 12,
'xxl': 3, 'xl': 3, 'lg': 3, 'md': 3, 'sm': 4, 'xs': 12
},
'content': [{
'component': 'VSwitch',
'props': {
'model': 'cross_seed_follow_enable_sites',
'label': '跟随启用的站点',
'hint': '与站点的启用状态保持一致,保存时会立即生效,并在后台监听站点状态变化实时生效。'
}
}]
}]
})
# 提示信息
form_content.append({
'component': 'VRow',
@@ -501,6 +540,12 @@ class MergeSiteSwitch(_PluginBase):
"""
return self.__check_follow_enable_sites(config_key='brush_flow_follow_enable_sites', plugin_id=self.__plugin_id_brush_flow, installed_plugin_ids=installed_plugin_ids)
def __check_cross_seed_follow_enable_sites(self, installed_plugin_ids: List[str] = None) -> bool:
"""
判断青蛙辅种站点的跟随按钮是否打开
"""
return self.__check_follow_enable_sites(config_key='cross_seed_follow_enable_sites', plugin_id=self.__plugin_id_cross_seed, installed_plugin_ids=installed_plugin_ids)
def __check_any_follow_enable_sites(self) -> bool:
"""
判断是否开启任意跟随按钮
@@ -565,6 +610,10 @@ class MergeSiteSwitch(_PluginBase):
config.update({
'brush_flow_sites': self.__get_brush_flow_site_ids(),
})
if self.__plugin_id_cross_seed in installed_plugin_ids:
config.update({
'cross_seed_sites': self.__get_cross_seed_site_ids(),
})
self.update_config(config=config)
return config
@@ -589,6 +638,8 @@ class MergeSiteSwitch(_PluginBase):
config.update({"iyuu_seed_sites": enable_sites.copy()})
if config.get('brush_flow_follow_enable_sites'):
config.update({"brush_flow_sites": enable_sites.copy()})
if config.get('cross_seed_follow_enable_sites'):
config.update({"cross_seed_sites": enable_sites.copy()})
return config
def __pre_config(self, config: dict) -> dict:
@@ -622,6 +673,8 @@ class MergeSiteSwitch(_PluginBase):
self.__set_iyuu_seed_site_ids(config.get('iyuu_seed_sites'))
if self.__plugin_id_brush_flow in installed_plugin_ids:
self.__set_brush_flow_site_ids(config.get('brush_flow_sites'))
if self.__plugin_id_cross_seed in installed_plugin_ids:
self.__set_cross_seed_site_ids(config.get('cross_seed_sites'))
return config
def __get_enable_site_ids(self) -> List[int]:
@@ -784,6 +837,20 @@ class MergeSiteSwitch(_PluginBase):
self.__set_plugin_config_value(self.__plugin_id_brush_flow, 'brushsites', site_ids)
logger.info("刷流站点配置完成")
def __get_cross_seed_site_ids(self) -> List[int]:
"""
获取青蛙辅种站点IDs
"""
sites = self.__get_plugin_config_value(self.__plugin_id_cross_seed, 'sites')
return sites if sites else []
def __set_cross_seed_site_ids(self, site_ids: List[int]):
"""
设置青蛙辅种站点IDs
"""
self.__set_plugin_config_value(self.__plugin_id_cross_seed, 'sites', site_ids)
logger.info("青蛙辅种站点配置完成")
def __update_search_site_ids_by_site(self, site_id: int, site_status: bool):
if site_id == None:
return
@@ -861,6 +928,17 @@ class MergeSiteSwitch(_PluginBase):
site_ids.remove(site_id)
self.__set_brush_flow_site_ids(site_ids=site_ids)
def __update_cross_seed_site_ids_by_site(self, site_id: int, site_status: bool):
if site_id == None:
return
site_ids = self.__get_cross_seed_site_ids() or []
if site_id not in site_ids and site_status:
site_ids.append(site_id)
self.__set_cross_seed_site_ids(site_ids=site_ids)
elif site_id in site_ids and not site_status:
site_ids.remove(site_id)
self.__set_cross_seed_site_ids(site_ids=site_ids)
def __update_site_ids_for_site_event(self, site_id: int, site_status: bool):
"""
针对站点事件更新各项配置
@@ -883,6 +961,8 @@ class MergeSiteSwitch(_PluginBase):
self.__update_iyuu_seed_site_ids_by_site(site_id=site_id, site_status=site_status)
if self.__check_brush_flow_follow_enable_sites(installed_plugin_ids=installed_plugin_ids):
self.__update_brush_flow_site_ids_by_site(site_id=site_id, site_status=site_status)
if self.__check_cross_seed_follow_enable_sites(installed_plugin_ids=installed_plugin_ids):
self.__update_cross_seed_site_ids_by_site(site_id=site_id, site_status=site_status)
@eventmanager.register(EventType.SiteUpdated)
def listen_site_updated_event(self, event: Event = None):