feat: AI Brain、防封与 Hook 升级、Android 精简版、SDK 文档与进度更新
Made-with: Cursor
This commit is contained in:
@@ -26,27 +26,32 @@ logger = logging.getLogger(__name__)
|
||||
class SkillExecutor:
|
||||
"""技能执行器"""
|
||||
|
||||
def __init__(self, device):
|
||||
def __init__(self, device, anti_ban_ctx=None):
|
||||
"""
|
||||
初始化
|
||||
|
||||
Args:
|
||||
device: uiautomator2设备对象
|
||||
anti_ban_ctx: 防护上下文 dict
|
||||
"""
|
||||
self.device = device
|
||||
self.anti_ban_ctx = anti_ban_ctx or {}
|
||||
self.skill_bus = SkillChatBus()
|
||||
self.skills = {}
|
||||
self._init_skills()
|
||||
|
||||
def _init_skills(self):
|
||||
"""初始化所有技能,注入共享聊天总线便于多 Skill 一起执行时交互"""
|
||||
"""初始化所有技能,注入共享聊天总线和防护上下文"""
|
||||
for name, skill_class in SKILL_REGISTRY.items():
|
||||
try:
|
||||
sig = getattr(skill_class, "__init__")
|
||||
if "bus" in sig.__code__.co_varnames:
|
||||
self.skills[name] = skill_class(self.device, self.skill_bus)
|
||||
else:
|
||||
self.skills[name] = skill_class(self.device)
|
||||
varnames = sig.__code__.co_varnames
|
||||
kwargs = {}
|
||||
if "bus" in varnames:
|
||||
kwargs["bus"] = self.skill_bus
|
||||
if "anti_ban_ctx" in varnames:
|
||||
kwargs["anti_ban_ctx"] = self.anti_ban_ctx
|
||||
self.skills[name] = skill_class(self.device, **kwargs)
|
||||
except Exception as e:
|
||||
logger.error(f"初始化技能失败 {name}: {e}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user