前因

因为QQ刷的比b站多,并且b站存在着吞动态的情况,于是,想到各个群几乎都有QQ机器人,但是上架的机器人的似乎并没有这种功能,于是笔者便打算简单搭建一个。
这里我选用了nonebot2+lagrange,因为nonebot2有着丰富的插件库,里面的bison插件便有着这种强大的功能。
在这里插入图片描述

经过

然而,笔者在使用这个插件的过程中,却频频报错,难以启动

报错一:无法订阅bilibili

在这里插入图片描述

解决方法:

按照提示启用即可,位置如下
在这里插入图片描述

报错二(题目):当进行到添加id操作时,后台直接报错:TypeError: AsyncClient.init() got an unexpected keyword argument ‘proxies’

在这里插入图片描述

在这里插入图片描述

原因

根据 PlugConfig 的定义,bison_proxy 是一个字符串或 None 类型,而 httpx 的最新版本需要通过 transport 参数传递代理设置。因此,当前报错的原因是 httpx.AsyncClient 不再支持直接通过 proxies 参数传递代理。

解决方法

将bison的utils包下的http.py原代码全部注释
在这里插入图片描述
替换成如下代码

import httpx
from httpx import AsyncClient, Proxy

from ..plugin_config import plugin_config

http_headers = {"user-agent": plugin_config.bison_ua}


def http_client(*args, **kwargs):
    # 设置代理,如果 bison_proxy 存在
    if plugin_config.bison_proxy:
        kwargs["transport"] = httpx.AsyncHTTPTransport(
            proxies={
                "all": plugin_config.bison_proxy,
            }
        )

    # 合并或设置 headers
    if headers := kwargs.get("headers"):
        new_headers = http_headers.copy()
        new_headers.update(headers)
        kwargs["headers"] = new_headers
    else:
        kwargs["headers"] = http_headers

    return AsyncClient(*args, **kwargs)

然后就可以正常继续操作了,推送功能也是正常(这里建议后台网页进行批量操作)
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐