这里写自定义目录标题
前因
因为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)
然后就可以正常继续操作了,推送功能也是正常(这里建议后台网页进行批量操作)