mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-07-10 23:11:47 +08:00
Merge pull request #2792 from InfinityPacer/feature/event
This commit is contained in:
@@ -114,16 +114,16 @@ class EventManager(metaclass=Singleton):
|
|||||||
:return: 返回是否存在可用的处理器
|
:return: 返回是否存在可用的处理器
|
||||||
"""
|
"""
|
||||||
if isinstance(etype, ChainEventType):
|
if isinstance(etype, ChainEventType):
|
||||||
handlers = self.__chain_subscribers.get(etype, [])
|
handlers = self.__chain_subscribers.get(etype, {})
|
||||||
return any(
|
return any(
|
||||||
self.__is_handler_enabled(handler)
|
self.__is_handler_enabled(handler)
|
||||||
for _, handler in handlers
|
for _, handler in handlers.values()
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
handlers = self.__broadcast_subscribers.get(etype, [])
|
handlers = self.__broadcast_subscribers.get(etype, {})
|
||||||
return any(
|
return any(
|
||||||
self.__is_handler_enabled(handler)
|
self.__is_handler_enabled(handler)
|
||||||
for handler in handlers
|
for handler in handlers.values()
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_event(self, etype: Union[EventType, ChainEventType], data: Optional[Dict] = None,
|
def send_event(self, etype: Union[EventType, ChainEventType], data: Optional[Dict] = None,
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ import traceback
|
|||||||
from typing import Generator, Optional, Tuple, Any
|
from typing import Generator, Optional, Tuple, Any
|
||||||
|
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
|
from app.core.event import eventmanager
|
||||||
from app.helper.module import ModuleHelper
|
from app.helper.module import ModuleHelper
|
||||||
from app.log import logger
|
from app.log import logger
|
||||||
|
from app.schemas.types import EventType
|
||||||
from app.utils.object import ObjectUtils
|
from app.utils.object import ObjectUtils
|
||||||
from app.utils.singleton import Singleton
|
from app.utils.singleton import Singleton
|
||||||
|
|
||||||
@@ -67,6 +69,7 @@ class ModuleManager(metaclass=Singleton):
|
|||||||
"""
|
"""
|
||||||
self.stop()
|
self.stop()
|
||||||
self.load_modules()
|
self.load_modules()
|
||||||
|
eventmanager.send_event(etype=EventType.ModuleReload, data={})
|
||||||
|
|
||||||
def test(self, modleid: str) -> Tuple[bool, str]:
|
def test(self, modleid: str) -> Tuple[bool, str]:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ class EventType(Enum):
|
|||||||
SystemError = "system.error"
|
SystemError = "system.error"
|
||||||
# 刮削元数据
|
# 刮削元数据
|
||||||
MetadataScrape = "metadata.scrape"
|
MetadataScrape = "metadata.scrape"
|
||||||
|
# 模块需要重载
|
||||||
|
ModuleReload = "module.reload"
|
||||||
|
|
||||||
|
|
||||||
# 同步链式事件
|
# 同步链式事件
|
||||||
|
|||||||
Reference in New Issue
Block a user