调用所有插件的用户活跃度 hooks
(user_id: Optional[str], bot_id: str, bot_self_id: str)
| 130 | |
| 131 | |
| 132 | async def _call_all_user_activity_hooks(user_id: Optional[str], bot_id: str, bot_self_id: str): |
| 133 | """调用所有插件的用户活跃度 hooks""" |
| 134 | if not user_id: |
| 135 | return |
| 136 | |
| 137 | logger.debug(f"[库洛签到·BotHook] 当前已注册的插件管理器: {list(_plugin_hook_managers.keys())}") |
| 138 | |
| 139 | for plugin_name, manager in _plugin_hook_managers.items(): |
| 140 | logger.debug(f"[库洛签到·BotHook] 插件 {plugin_name} 有 {len(manager.user_activity_hooks)} 个 user_activity_hooks") |
| 141 | |
| 142 | if not manager.user_activity_hooks: |
| 143 | continue |
| 144 | |
| 145 | logger.debug(f"[库洛签到·BotHook] 调用 {len(manager.user_activity_hooks)} 个 user_activity hooks, user_id={user_id}") |
| 146 | |
| 147 | for hook in manager.user_activity_hooks: |
| 148 | try: |
| 149 | logger.debug(f"[库洛签到·BotHook] 执行 hook: {hook.__name__}, user_id={user_id}") |
| 150 | try: |
| 151 | await hook(user_id, bot_id, bot_self_id) |
| 152 | except TypeError: |
| 153 | await hook(user_id, bot_id) |
| 154 | except Exception as e: |
| 155 | logger.warning(f"[库洛签到·BotHook] user_activity hook {hook.__name__} 执行失败: {e}") |
| 156 | |
| 157 | |
| 158 | def install_bot_hooks(): |