kanbereina / nonebot-plugin-llob-master

Support for managing your LLOB on Windows
Other
15 stars 0 forks source link

启用LM_Enable_LookUp_Reg这项配置的时候会自动尝试修补QQNT #4

Closed 3CB3EC closed 3 weeks ago

3CB3EC commented 3 weeks ago

第一次启动的时候我开启了LM_Enable_LookUp_Reg这个配置,启动时出现如下提示 image

我index.js文件里LiteLoaderQQNT路径设置是对的,但提示检测不到,然后QQNT启动不了了 还好我看到了启动的时候出现“QQNT修补完成”那一行,意识到应该是强制把我QQNT的index,js文件修补那一行路径给修改掉了 看了下修改成了这玩意儿"C:\Users\Administrator\LiteLoaderQQNT-main"

建议补充说明一下,或者改一下,还是挺坑的

kanbereina commented 3 weeks ago

你好,日志及插件配置提供不全,但基本能推断出此次问题的相关细节。

相关细节

①本插件的安装逻辑

本插件的LLOB一键安装的相关逻辑,参照项目 Windows一键安装LLOB(super1207/install_llob)

以下是本插件判断LLQQNT路径的相关代码:

class LLOBPath:
    @staticmethod
    def get_llqqnt_path() -> LLQQNT_Path:
        """获取LiteLoaderQQNT路径"""
        logger.debug("尝试获取LLQQNT路径...")

        up_path = os.getenv("USERPROFILE")
        assert up_path is not None, "无法获取环境变量'USERPROFILE'!"
        up_path = Path(up_path)
        llqqnt_path = up_path/"LiteLoaderQQNT-main"

        if llqqnt_path.exists():
            return LLQQNT_Path(llqqnt_path)

        raise RuntimeError("获取LLQQNT路径失败, 当前可能未安装LLQQNT!")

而这是项目 super1207/install_llob 中的相关代码:

fn mymain() -> Result<(), Box<dyn std::error::Error>> {
    ...  # 省略细节

    log::info!("正在下载LiteLoader项目...");
    let patch_url = format!("{git_proxy}/LiteLoaderQQNT/LiteLoaderQQNT/archive/master.zip");
    let bin = match http_post(rt_ptr.clone(), &patch_url, None) {
        Ok(bin) => bin,
        Err(_) => {
            log::error!("LiteLoader项目下载失败");
            app_exit();
        }
    };
    log::info!("下载完成");

    log::info!("正在解压...");
    let userdir = PathBuf::from_str(&std::env::var("USERPROFILE")?)?;
    let zip_path = userdir.join("LiteLoaderQQNT-main.zip");
    fs::write(&zip_path, bin)?;
    extrat(
        &zip_path,
        &zip_path
            .parent()
            .ok_or("can't get parent")?
            .join("LiteLoaderQQNT-main"),
        true,
    )?;
    log::info!("解压完成");
    fix_index_js(&index_js_path,&userdir)?;
    fix_package_json(&package_json_path)?;
    log::info!("LiteLoaderQQNT安装完成");

    ...  # 省略细节

以上,我们可以知道,项目 super1207/install_llob 的LLQQNT安装逻辑:

  1. 直接获取Windows环境变量“USERPROFILE”
  2. 在此路径下新建一个“LiteLoaderQQNT-main”文件夹
  3. 将LLQQNT项目文件安装到该路径
  4. 写入NTQQ相关文件的 index.js(写死此路径)

因此,如果本插件未检测到该路径,将直接视为未安装LLQQNT,而不是从index.js中寻找你已安装的LLQQNT路径。

②相关配置启用LLOB安装

以下是本插件的相关代码:

async def llob_update_checker():
    """LLOB更新检查"""
    try:  # 获取当前LLOB版本信息
        llqqnt_path = LLOBPath.get_llqqnt_path()
        llob_path = LLOBPath.get_llob_path(path=llqqnt_path)
        llob_version = LLOBPath.get_llob_version(path=llob_path)
        logger.info(f"当前LLOB版本: {llob_version}")

    except Exception as e:  # 未检测到LLOB版本时(大概率没安装), 则根据设置进行自动安装
        logger.error(f"检查LLOB版本失败: {e.__class__.__name__}{e.args}")
        logger.warning("当前可能未安装LLOB, 尝试自动安装...")

        if PluginConfig.lm_llob_first_auto_install:
            logger.info("当前已启用'初次使用LLOB自动安装', 即将进行任务...")
            llob_data_path = await llob_auto_install()

            if llob_data_path is not None:

                if PluginConfig.lm_llob_first_auto_setting_qqid is not None:
                    logger.info("当前已启用'初次使用LLOB自动配置', 即将进行任务...")
                    auto_llob_setting(llob_data_path=llob_data_path)

                else:
                    logger.warning("当前已禁止'初次使用LLOB自动配置', 跳过配置流程!")

        else:
            logger.warning("当前已禁止'初次使用LLOB自动安装', 跳过安装流程!")

由此可见,若你开启了 LM_LLOB_First_Auto_Install 选项(默认值为False),则视为用户同意安装,本插件将自动进行相关安装流程

因此,并不是配置了 LM_Enable_LookUp_Reg 选项的原因。 (此选项是用于查询注册表中NTQQ路径以实现断连重启的相关功能)

③总结

在当前版本,你可以暂时使用默认安装的LLQQNT路径, 启动本插件的断连重启,以实现使用 nb run “自动”登录QQ连接Bot”,这会带来不错的体验。

最后,感谢你的使用反馈LLOB-Master会根据你的问题逐步改进插件

3CB3EC commented 2 weeks ago

感谢帮忙分析,我一开始的描述有误,问题应该是没有正确检测到我安装的LLOB 现在我能正常使用,以下内容只是帮助分析

描述一下我的使用场景,其实我这个nb机器人之前使用LLOB一直在运行的,并且使用了nonebot_plugin_ntqq_restart这个插件自动重启,前些天发现这个不管用了,无法自动重启,于是根据原来github页面的链接找到了LLOneBot-Master这个插件。

首次运行的时候,我用了以下配置: LM_NTQQ_Path=C:\Users\XXX\Desktop\Software\Tencent\QQNT\QQ.exe LM_Enable_LookUp_Reg=True LM_NTQQ_Update_Check=False LM_Enable_Auto_Restart=True LM_Restart_Time=10

这时出现了这个问题,有以下几个后果: 1、index.js被强制覆盖 2、提示给我安装了一个LLQQNT,根据被改的index.js我去找了C:\Users\Administrator\LiteLoaderQQNT-main这个目录,发现并没有生成LiteLoaderQQNT-main这个目录

我接下来的操作: 1、恢复index.js文件 2、把配置里LM_Enable_LookUp_Reg设置为False 然后再启动,这时就正常了

以下是当时出现问题启动的全部日志(等号行开始,等号行结束)

2024-09-27 15:02:50.712 | SUCCESS | nonebot:load_plugin:186 - Succeeded to load plugin "nonebot_plugin_logpile" 2024-09-27 15:02:50.715 | TRACE | nonebot:new:319 - Define new matcher Matcher(type='message', module=nonebot_plugin_sticker_saver, lineno=15) 2024-09-27 15:02:50.716 | SUCCESS | nonebot:load_plugin:186 - Succeeded to load plugin "nonebot_plugin_sticker_saver" 2024-09-27 15:02:50.717 | TRACE | nonebot:new:319 - Define new matcher Matcher(type='message', module=nonebot_plugin_60s, lineno=79) 2024-09-27 15:02:50.718 | SUCCESS | nonebot:load_plugin:186 - Succeeded to load plugin "nonebot_plugin_60s" 2024-09-27 15:02:50.718 | SUCCESS | nonebot:load_plugin:186 - Succeeded to load plugin "nonebot_plugin_apscheduler" 2024-09-27 15:02:50.764 | SUCCESS | nonebot:load_plugin:186 - Succeeded to load plugin "nonebot_plugin_saa" 2024-09-27 15:02:50.765 | SUCCESS | nonebot:load_plugin:186 - Succeeded to load plugin "ssttkkl_nonebot_utils" 2024-09-27 15:02:50.767 | ERROR | nonebot:load_plugin:196 - Failed to import "nonebot_plugin_majsoul" Traceback (most recent call last):

File "", line 14, in

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\load.py", line 131, in load_from_toml return load_all_plugins(plugins, plugin_dirs) │ │ └ [] │ └ ['nonebot_plugin_htmlrender', 'nonebot_plugin_today_in_history', 'nonebot_plugin_longtu', 'nonebot_plugin_sticker_saver', 'ta... └ <function load_all_plugins at 0x000002679AEC2E60>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\load.py", line 65, in load_all_plugins return manager.load_all_plugins() │ └ <function PluginManager.load_all_plugins at 0x000002679AECB640> └ PluginManager(available_plugins={'nonebot_plugin_ntqq_restart': 'nonebot_plugin_ntqq_restart', 'nonebot_plugin_datastore': 'n...

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\manager.py", line 203, in load_all_plugins return set(

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\manager.py", line 204, in filter(None, (self.load_plugin(name) for name in self.available_plugins)) │ │ │ │ │ └ <property object at 0x000002679AEC5DA0> │ │ │ │ └ PluginManager(available_plugins={'nonebot_plugin_ntqq_restart': 'nonebot_plugin_ntqq_restart', 'nonebot_plugin_datastore': 'n... │ │ │ └ 'nonebot_plugin_majsoul' │ │ └ 'nonebot_plugin_majsoul' │ └ <function PluginManager.load_plugin at 0x000002679AECB5B0> └ PluginManager(available_plugins={'nonebot_plugin_ntqq_restart': 'nonebot_plugin_ntqq_restart', 'nonebot_plugin_datastore': 'n...

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\manager.py", line 167, in load_plugin module = importlib.import_module(self._third_party_plugin_ids[name]) │ │ │ │ └ 'nonebot_plugin_majsoul' │ │ │ └ {'nonebot_plugin_ntqq_restart': 'nonebot_plugin_ntqq_restart', 'nonebot_plugin_datastore': 'nonebot_plugin_datastore', 'noneb... │ │ └ PluginManager(available_plugins={'nonebot_plugin_ntqq_restart': 'nonebot_plugin_ntqq_restart', 'nonebot_plugin_datastore': 'n... │ └ <function import_module at 0x000002679842C8B0> └ <module 'importlib' from 'C:\Python31011\lib\importlib\init.py'>

File "C:\Python31011\lib\importlib__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) │ │ │ │ │ └ 0 │ │ │ │ └ None │ │ │ └ 0 │ │ └ 'nonebot_plugin_majsoul' │ └ <function _gcd_import at 0x00000267982D3490> └ <module '_frozen_importlib' (frozen)>

File "", line 1050, in _gcd_import File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in _load_unlocked

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\manager.py", line 255, in exec_module super().exec_module(module) └ <module 'nonebot_plugin_majsoul' from 'C:\Users\XXX\Desktop\Software\qbot\.venv\lib\site-packages\nonebotplugin...

File "", line 883, in exec_module File "", line 241, in _call_with_frames_removed

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot_plugin_majsoul__init__.py", line 15, in from .config import Config

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot_plugin_majsoul\config.py", line 2, in from pydantic import BaseSettings

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\pydantic__init.py", line 395, in getattr__ return _getattr_migration(attr_name) │ └ 'BaseSettings' └ <function getattr_migration..wrapper at 0x000002679AA83520>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\pydantic_migration.py", line 296, in wrapper raise PydanticImportError( └ <class 'pydantic.errors.PydanticImportError'>

pydantic.errors.PydanticImportError: BaseSettings has been moved to the pydantic-settings package. See https://docs.pydantic.dev/2.8/migration/#basesettings-has-moved-to-pydantic-settings for more details.

For further information visit https://errors.pydantic.dev/2.8/u/import-error 2024-09-27 15:02:50.771 | SUCCESS | nonebot:run:334 - Running NoneBot... 2024-09-27 15:02:50.771 | DEBUG | nonebot:run:111 - Loaded adapters: OneBot V11 2024-09-27 15:02:50.786 | INFO | uvicorn:_serve:82 - Started server process [10856] 2024-09-27 15:02:50.786 | INFO | uvicorn:startup:48 - Waiting for application startup. 2024-09-27 15:02:50.788 | INFO | nonebot_plugin_apscheduler:_start_scheduler:35 - Scheduler Started 2024-09-27 15:02:50.788 | WARNING | nonebot_plugin_llob_master:start:146 - 请不要在任何影响力较大的简中互联网平台, 发布和讨论任何与LLOB、本插件存在相关性的信息! 2024-09-27 15:02:50.788 | DEBUG | nonebot_plugin_llob_master:get_path:18 - 正在尝试从插件配置获取NTQQ路径... 2024-09-27 15:02:50.789 | DEBUG | nonebot_plugin_llob_master:get_version:35 - 正在检查NTQQ版本... 2024-09-27 15:02:50.789 | DEBUG | nonebot_plugin_llob_master:is_win64:60 - 正在检查NTQQ位数... 2024-09-27 15:02:50.789 | INFO | nonebot_plugin_llob_master:ntqq_update_checker:85 - 当前NTQQ版本: 9.9.12-25493 (64 位) 2024-09-27 15:02:50.789 | WARNING | nonebot_plugin_llob_master:ntqq_update_checker:107 - 已关闭'NTQQ更新检查', 跳过该流程 2024-09-27 15:02:50.790 | DEBUG | nonebot_plugin_llob_master:get_llqqnt_path:19 - 尝试获取LLQQNT路径... 2024-09-27 15:02:50.790 | ERROR | nonebot_plugin_llob_master:llob_update_checker:18 - 检查LLOB版本失败: RuntimeError('获取LLQQNT路径失败, 当前可能未安装LLQQNT!',) 2024-09-27 15:02:50.790 | WARNING | nonebot_plugin_llob_master:llob_update_checker:19 - 当前可能未安装LLOB, 尝试自动安装... 2024-09-27 15:02:50.790 | INFO | nonebot_plugin_llob_master:llob_update_checker:22 - 当前已启用'初次使用LLOB自动安装', 即将进行任务... 2024-09-27 15:02:50.790 | INFO | nonebot_plugin_llob_master:llob_auto_install:178 - 正在自动安装新版本的LLOB... 2024-09-27 15:02:50.790 | DEBUG | nonebot_plugin_llob_master:is_admin:37 - 正在检查是否拥有管理员权限... 2024-09-27 15:02:50.791 | DEBUG | nonebot_plugin_llob_master:get_path:18 - 正在尝试从插件配置获取NTQQ路径... 2024-09-27 15:02:50.791 | DEBUG | nonebot_plugin_llob_master:is_win64:60 - 正在检查NTQQ位数... 2024-09-27 15:02:50.808 | WARNING | nonebot_plugin_llob_master:is_running:149 - 检测到未知NTQQ进程(PID: 10652)正在运行 (提示: 若现在启动你配置路径的NTQQ, 可能导致安装不正常!) 2024-09-27 15:02:50.809 | DEBUG | nonebot_plugin_llob_master:get_github_proxy:19 - 正在获取GitHub代理... 2024-09-27 15:02:53.947 | INFO | nonebot_plugin_llob_master:llob_auto_install:195 - 使用代理: https://mirror.ghproxy.com/https://github.com 2024-09-27 15:02:53.953 | DEBUG | nonebot_plugin_llob_master:llob_auto_install:203 - 正在下载NTQQ修补文件... 2024-09-27 15:02:59.383 | SUCCESS | nonebot_plugin_llob_master:llob_auto_install:219 - NTQQ修补完成! 2024-09-27 15:02:59.384 | DEBUG | nonebot_plugin_llob_master:llob_auto_install:222 - 正在下载LLQQNT项目... 2024-09-27 15:03:01.047 | DEBUG | nonebot_plugin_llob_master:install_llqqnt:77 - 正在解压LLQQNT... 2024-09-27 15:03:01.055 | DEBUG | nonebot_plugin_llob_master:install_llqqnt:82 - 解压完成, 删除LLQQNT压缩包... 2024-09-27 15:03:01.055 | DEBUG | nonebot_plugin_llob_master:install_llqqnt:87 - 正在覆写NTQQ文件... 2024-09-27 15:03:01.056 | SUCCESS | nonebot_plugin_llob_master:llob_auto_install:236 - LLQQNT安装完成 2024-09-27 15:03:01.056 | DEBUG | nonebot_plugin_llob_master:llob_auto_install:239 - 正在下载LLOB项目... 2024-09-27 15:03:03.604 | DEBUG | nonebot_plugin_llob_master:install_llob:116 - 正在解压LLOB... 2024-09-27 15:03:03.625 | DEBUG | nonebot_plugin_llob_master:install_llob:121 - 解压完成, 删除LLOB压缩包... 2024-09-27 15:03:03.625 | DEBUG | nonebot_plugin_llob_master:install_llob:127 - 创建LLOB必要目录... 2024-09-27 15:03:03.626 | WARNING | nonebot_plugin_llob_master:install_llob:131 - 检测到可能为初次安装LLOB (提示: 安装完成后, 你可能需自行配置LLOB以连接Bot) 2024-09-27 15:03:03.627 | SUCCESS | nonebot_plugin_llob_master:llob_auto_install:257 - 自动安装LLOB成功, 享受快乐时光吧! 2024-09-27 15:03:03.627 | WARNING | nonebot_plugin_llob_master:llob_update_checker:32 - 当前已禁止'初次使用LLOB自动配置', 跳过配置流程! 2024-09-27 15:03:03.627 | INFO | nonebot_plugin_llob_master:ntqq_start_checker:41 - 当前已允许'自动管理NTQQ进程、断连重启', 即将进行任务... 2024-09-27 15:03:03.628 | DEBUG | nonebot_plugin_llob_master:run:25 - 正在启动NTQQ... 2024-09-27 15:03:03.635 | WARNING | nonebot_plugin_llob_master:is_running:149 - 检测到未知NTQQ进程(PID: 10652)正在运行 (提示: 若现在启动你配置路径的NTQQ, 可能导致当前NTQQ启动不正常!) 2024-09-27 15:03:03.674 | SUCCESS | nonebot_plugin_llob_master:run:43 - 启动NTQQ成功, 当前进程: 26448 2024-09-27 15:03:03.774 | INFO | nonebot_plugin_datastore:init_db:108 - 数据库初始化完成 2024-09-27 15:03:04.055 | INFO | nonebot_plugin_htmlrender:launch_browser:56 - 使用 chromium 启动 2024-09-27 15:03:04.309 | INFO | nonebot_plugin_htmlrender:init:39 - Browser Started. 2024-09-27 15:03:04.310 | INFO | nonebot_plugin_today_in_history:subscribe_jobs:41 - history_env: {'g_296265476': {'hour': '7', 'minute': '59'}} 2024-09-27 15:03:04.311 | INFO | nonebot_plugin_today_in_history:subscribe_jobs:42 - history_env_all_group: False 2024-09-27 15:03:04.315 | DEBUG | nonebot_plugin_today_in_history:subscribe_jobs:54 - history_push_g_296265476,7:59 2024-09-27 15:03:04.315 | INFO | tatarubot2:download_calendar:42 - 开启日历自动更新 2024-09-27 15:03:04.322 | INFO | uvicorn:startup:62 - Application startup complete. 2024-09-27 15:03:04.323 | INFO | uvicorn:_log_started_message:214 - Uvicorn running on http://127.0.0.1:22334 (Press CTRL+C to quit) 2024-09-27 15:03:05.256 | INFO | tatarubot2:download_calendar:53 - 日历更新 失败 2024-09-27 15:03:06.324 | ERROR | nonebot:log:310 - OneBot V11 | Error while setup websocket to ws://127.0.0.1:33001/. Trying to reconnect... Traceback (most recent call last):

File "", line 17, in

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot__init__.py", line 335, in run get_driver().run(*args, **kwargs) │ │ └ {} │ └ () └ <function get_driver at 0x000002679B863D90>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\drivers\fastapi.py", line 186, in run uvicorn.run( │ └ <function run at 0x000002679BC7D3F0> └ <module 'uvicorn' from 'C:\Users\XXX\Desktop\Software\qbot\.venv\lib\site-packages\uvicorn\init.py'>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\uvicorn\main.py", line 577, in run server.run() │ └ <function Server.run at 0x000002679BC7CD30> └ <uvicorn.server.Server object at 0x00000267D005F760>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\uvicorn\server.py", line 65, in run return asyncio.run(self.serve(sockets=sockets)) │ │ │ │ └ None │ │ │ └ <function Server.serve at 0x000002679BC7CDC0> │ │ └ <uvicorn.server.Server object at 0x00000267D005F760> │ └ <function run at 0x0000026798C45A20> └ <module 'asyncio' from 'C:\Python31011\lib\asyncio\init.py'>

File "C:\Python31011\lib\asyncio\runners.py", line 44, in run return loop.run_until_complete(main) │ │ └ <coroutine object Server.serve at 0x000002679D8FEF10> │ └ <function BaseEventLoop.run_until_complete at 0x0000026798D436D0> └

File "C:\Python31011\lib\asyncio\base_events.py", line 636, in run_until_complete self.run_forever() │ └ <function ProactorEventLoop.run_forever at 0x000002679A977D90> └

File "C:\Python31011\lib\asyncio\windows_events.py", line 321, in run_forever super().run_forever()

File "C:\Python31011\lib\asyncio\base_events.py", line 603, in run_forever self._run_once() │ └ <function BaseEventLoop._run_once at 0x0000026798D451B0> └

File "C:\Python31011\lib\asyncio\base_events.py", line 1909, in _run_once handle._run() │ └ <function Handle._run at 0x0000026798CE4B80> └ <Handle Task.task_wakeup(<_OverlappedF..., 1225, None)>)>

File "C:\Python31011\lib\asyncio\events.py", line 80, in _run self._context.run(self._callback, *self._args) │ │ │ │ │ └ <member '_args' of 'Handle' objects> │ │ │ │ └ <Handle Task.task_wakeup(<_OverlappedF..., 1225, None)>)> │ │ │ └ <member '_callback' of 'Handle' objects> │ │ └ <Handle Task.task_wakeup(<_OverlappedF..., 1225, None)>)> │ └ <member '_context' of 'Handle' objects> └ <Handle Task.task_wakeup(<_OverlappedF..., 1225, None)>)>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\adapters\onebot\v11\adapter.py", line 332, in _forward_ws async with self.websocket(request) as ws: │ │ └ Request(method='GET', url='ws://127.0.0.1:33001/') │ └ <function Adapter.websocket at 0x000002679B863B50> └ Adapter(name='OneBot V11')

File "C:\Python31011\lib\contextlib.py", line 199, in aenter return await anext(self.gen) │ └ <async_generator object Adapter.websocket at 0x00000267D058E540> └ <contextlib._AsyncGeneratorContextManager object at 0x00000267D0B1D840>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\internal\adapter\adapter.py", line 99, in websocket async with self.driver.websocket(setup) as ws: │ │ │ └ Request(method='GET', url='ws://127.0.0.1:33001/') │ │ └ <function Mixin.websocket at 0x000002679D9D8B80> │ └ Driver(type='fastapi+httpx+websockets+aiohttp', adapters=1, bots=0) └ Adapter(name='OneBot V11')

File "C:\Python31011\lib\contextlib.py", line 199, in aenter return await anext(self.gen) │ └ <async_generator object Mixin.websocket at 0x00000267D058E4C0> └ <contextlib._AsyncGeneratorContextManager object at 0x00000267D0B1DC60>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\drivers\websockets.py", line 77, in websocket async with connection as ws: └ <websockets.legacy.client.Connect object at 0x00000267D0B1D900>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\websockets\legacy\client.py", line 629, in aenter return await self └ <websockets.legacy.client.Connect object at 0x00000267D0B1D900>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\websockets\legacy\client.py", line 647, in await_impl_timeout return await self.await_impl() │ └ <function Connect.await_impl at 0x000002679D9D8820> └ <websockets.legacy.client.Connect object at 0x00000267D0B1D900>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\websockets\legacy\client.py", line 651, in __await_impl__ _transport, _protocol = await self._create_connection() │ └ functools.partial(<bound method BaseEventLoop.create_connection of >... └ <websockets.legacy.client.Connect object at 0x00000267D0B1D900>

File "C:\Python31011\lib\asyncio\base_events.py", line 1076, in create_connection raise exceptions[0] └ None

File "C:\Python31011\lib\asyncio\base_events.py", line 1060, in create_connection sock = await self._connect_sock( │ └ <function BaseEventLoop._connect_sock at 0x0000026798D44430> └

File "C:\Python31011\lib\asyncio\base_events.py", line 969, in _connect_sock await self.sock_connect(sock, address) │ │ │ └ ('127.0.0.1', 33001) │ │ └ <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6> │ └ <function BaseProactorEventLoop.sock_connect at 0x000002679A95CCA0> └

File "C:\Python31011\lib\asyncio\proactor_events.py", line 709, in sock_connect return await self._proactor.connect(sock, address) │ │ │ │ └ ('127.0.0.1', 33001) │ │ │ └ <socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6> │ │ └ <function IocpProactor.connect at 0x000002679A984700> │ └ <IocpProactor overlapped#=5 result#=0> └

File "C:\Python31011\lib\asyncio\windows_events.py", line 826, in _poll value = callback(transferred, key, ov) │ │ │ └ <_overlapped.Overlapped object at 0x00000267D00B6E50> │ │ └ 0 │ └ 0 └ <function IocpProactor.connect..finish_connect at 0x00000267D062C940>

File "C:\Python31011\lib\asyncio\windows_events.py", line 613, in finish_connect ov.getresult() │ └ <method 'getresult' of '_overlapped.Overlapped' objects> └ <_overlapped.Overlapped object at 0x00000267D00B6E50>

ConnectionRefusedError: [WinError 1225] 远程计算机拒绝网络连接。 2024-09-27 15:03:08.933 | INFO | uvicorn:shutdown:258 - Shutting down 2024-09-27 15:03:09.034 | INFO | uvicorn:shutdown:67 - Waiting for application shutdown. 2024-09-27 15:03:09.035 | INFO | nonebot_plugin_apscheduler:_shutdown_scheduler:41 - Scheduler Shutdown 2024-09-27 15:03:09.036 | SUCCESS | nonebot_plugin_llob_master:close:133 - 关闭NTQQ进程(PID: 26448)成功 2024-09-27 15:03:09.045 | ERROR | uvicorn:send:134 - Traceback (most recent call last): File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\starlette\routing.py", line 732, in lifespan async with self.lifespan_context(app) as maybe_state: File "C:\Python31011\lib\contextlib.py", line 206, in aexit await anext(self.gen) File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\drivers\fastapi.py", line 157, in _lifespan_manager await self._lifespan.shutdown() File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\internal\driver_lifespan.py", line 49, in shutdown await self._run_lifespan_func(self._shutdown_funcs) File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\internal\driver_lifespan.py", line 36, in _run_lifespan_func await cast(ASYNC_LIFESPAN_FUNC, func)() File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot_plugin_htmlrender__init__.py", line 45, in shutdown await shutdown_browser() File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot_plugin_htmlrender\browser.py", line 79, in shutdown_browser await _browser.close() File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\playwright\async_api_generated.py", line 13893, in close return mapping.from_maybe_impl(await self._impl_obj.close(reason=reason)) File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\playwright_impl_browser.py", line 189, in close raise e File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\playwright_impl_browser.py", line 186, in close await self._channel.send("close", {"reason": reason}) File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\playwright_impl_connection.py", line 59, in send return await self._connection.wrap_api_call( File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\playwright_impl_connection.py", line 514, in wrap_api_call raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None Exception: Browser.close: Connection closed while reading from the driver

2024-09-27 15:03:09.045 | ERROR | uvicorn:shutdown:73 - Application shutdown failed. Exiting. 2024-09-27 15:07:18.177 | SUCCESS | nonebot:load_plugin:186 - Succeeded to load plugin "nonebot_plugin_logpile" 2024-09-27 15:07:18.179 | ERROR | nonebot:load_plugin:196 - Failed to import "nonebot_plugin_ntqq_restart" Traceback (most recent call last):

File "", line 14, in

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\load.py", line 131, in load_from_toml return load_all_plugins(plugins, plugin_dirs) │ │ └ [] │ └ ['nonebot_plugin_htmlrender', 'nonebot_plugin_today_in_history', 'nonebot_plugin_longtu', 'nonebot_plugin_sticker_saver', 'ta... └ <function load_all_plugins at 0x000001EE88FD6E60>

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\load.py", line 65, in load_all_plugins return manager.load_all_plugins() │ └ <function PluginManager.load_all_plugins at 0x000001EE88FDB640> └ PluginManager(available_plugins={'nonebot_plugin_htmlrender': 'nonebot_plugin_htmlrender', 'nonebot_plugin_today_in_history':...

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\manager.py", line 203, in load_all_plugins return set(

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\manager.py", line 204, in filter(None, (self.load_plugin(name) for name in self.available_plugins)) │ │ │ │ │ └ <property object at 0x000001EE88FC9E90> │ │ │ │ └ PluginManager(available_plugins={'nonebot_plugin_htmlrender': 'nonebot_plugin_htmlrender', 'nonebot_plugin_today_in_history':... │ │ │ └ 'nonebot_plugin_ntqq_restart' │ │ └ 'nonebot_plugin_ntqq_restart' │ └ <function PluginManager.load_plugin at 0x000001EE88FDB5B0> └ PluginManager(available_plugins={'nonebot_plugin_htmlrender': 'nonebot_plugin_htmlrender', 'nonebot_plugin_today_in_history':...

File "C:\Users\XXX\Desktop\Software\qbot.venv\lib\site-packages\nonebot\plugin\manager.py", line 167, in load_plugin module = importlib.import_module(self._third_party_plugin_ids[name]) │ │ │ │ └ 'nonebot_plugin_ntqq_restart' │ │ │ └ {'nonebot_plugin_htmlrender': 'nonebot_plugin_htmlrender', 'nonebot_plugin_today_in_history': 'nonebot_plugin_today_in_histor... │ │ └ PluginManager(available_plugins={'nonebot_plugin_htmlrender': 'nonebot_plugin_htmlrender', 'nonebot_plugin_today_in_history':... │ └ <function import_module at 0x000001EE8659C8B0> └ <module 'importlib' from 'C:\Python31011\lib\importlib\init.py'>

File "C:\Python31011\lib\importlib__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) │ │ │ │ │ └ 0 │ │ │ │ └ None │ │ │ └ 0 │ │ └ 'nonebot_plugin_ntqq_restart' │ └ <function _gcd_import at 0x000001EE86443490> └ <module '_frozen_importlib' (frozen)>

File "", line 1050, in _gcd_import File "", line 1027, in _find_and_load File "", line 1004, in _find_and_load_unlocked

ModuleNotFoundError: No module named 'nonebot_plugin_ntqq_restart'

=========================================

我LLOB之前已经装好了,并且正常使用,在自定义的LLQQNT目录的plugins目录下 C:\Users\XXX\Desktop\Software\LiteLoaderQQNT\plugins image