SK-415 / HarukaBot

将 B 站的动态和直播信息推送至 QQ,基于 NoneBot2 开发
https://haruka-bot.sk415.icu
GNU Affero General Public License v3.0
831 stars 109 forks source link

【错误回报】关注失败 #375

Closed ZENGzxAJZ closed 1 year ago

ZENGzxAJZ commented 1 year ago

运行环境

win 10 22H2

HarukaBot 版本

当前版本:v1.5.4

go-cqhttp 版本

v1.0.1

错误描述

关注失败,显示: 未知错误,请联系开发者反馈,错误内容: 错误码: -403, 信息: 访问权限不足

报错日志(如果有)

No response

kevinluo6191 commented 1 year ago

可复现

zszcq commented 1 year ago

我也可以复现,我部署了两套,其中一套有这个问题,另一套正常 _QP~UE{MO71_$5)9RMOQ8CD

boxie123 commented 1 year ago

上次改了的那个api, 前天每次刷新随机出200和403状态码, 刚才试了试彻底寄了: https://api.bilibili.com/x/space/wbi/acc/info?mid=1485569 https://github.com/SK-415/bilireq/pull/18

boxie123 commented 1 year ago

先自己改数据库加关注吧

zhdl889 commented 1 year ago

先自己改数据库加关注吧

刚下程序发现不能关注,弱弱地问在哪里修改数据库……

boxie123 commented 1 year ago

刚下程序发现不能关注,弱弱地问在哪里修改数据库……

运行目录下的./data/data.sqlite3文件

4rozeN commented 1 year ago

刚下程序发现不能关注,弱弱地问在哪里修改数据库……

运行目录下的./data/data.sqlite3文件

能不能展示一个示例😭,之前的数据库文件没有备份😭 我注意到文件中有6张表,sub表似乎是关注列表

uid我理解可能是up主的uid,但是其他的并不会填写😖

boxie123 commented 1 year ago

参考haruka_bot\database\models.py文件:

class Sub(BaseModel):
    type = CharField(max_length=10)
    type_id = IntField()
    uid = IntField()
    live = BooleanField()  # default=True
    dynamic = BooleanField()  # default=True
    at = BooleanField()  # default=False
    bot_id = IntField()

class User(BaseModel):
    uid = IntField(pk=True)
    name = CharField(max_length=20)

class Group(BaseModel):
    id = IntField(pk=True)
    admin = BooleanField()  # default=True

class Guild(BaseModel):
    id = IntField(pk=True)
    guild_id = TextField()
    channel_id = TextField()
    admin = BooleanField()  # default=True

class Version(BaseModel):
    version = CharField(max_length=30)

Sub

type可选"group"(群聊)和"private"(私聊), type_id为群号或QQ号, bot_id为发送消息的bot的QQ号, uid为uid, 其他如live, dynamic为是否推送直播/动态, 可以之后给bot发送命令更改

User

需要爬取的up主, uid为uid, name可以随便写, 之后爬取时会自动更改

Group

需要推送的群聊, id为群号, admin为是否开启管理员权限

Guild

频道相关设置, 我没用过, 留空

其中如果多出id列, 均为自增序列

boxie123 commented 1 year ago

其实只需写入User表中uidname, 关注命令就会正常运行, 其他不用手动改

boxie123 commented 1 year ago

另外提供临时方案: image

可以暂时解决关注异常, 但不够优雅(划掉), 所以仅推荐在更新修复之前临时使用

zhdl889 commented 1 year ago

感谢 方法有用!

4rozeN commented 1 year ago

我尝试修改data.sqlite3文件,使用sqlite3 data.sqlite3命令后,进行了插入例如INSERT INTO user(uid, name) VALUES ('1577804', '某幻君'); 但当我修改完成退出sqlite3命令交互环境后,回到cmd命令行使用hb run 我发现data目录下的除data.sqlite3文件保留,另外两个文件貌似被删除重新生成了,而且bot上线后发送关注列表返回为空表 也就是说可能整个data目录都在hb run之后重新生成了,这导致我的插入并没有用。不知道是不是我打开方式不对?

不过临时解决办法确实有用ヾ(≧▽≦*)o Python39\Lib\site-packages\haruka_bot\plugins\sub\add_sub.py image 我是将将42-45行直接注释掉了 感谢!🎉

boxie123 commented 1 year ago

另外两个是数据库临时文件,每次启动都会重新生成。

手动写入user表后,需要再向bot发送关注命令,让他写入sub表,才会出现在关注列表中。

4rozeN commented 1 year ago

原来如此,了解了。感谢!

wosiwq commented 1 year ago

上次改了的那个api, 前天每次刷新随机出200和403状态码, 刚才试了试彻底寄了: https://api.bilibili.com/x/space/wbi/acc/info?mid=1485569 SK-415/bilireq#18

https://github.com/velvetflame/liveStatusCheck

wosiwq commented 1 year ago

上次改了的那个api, 前天每次刷新随机出200和403状态码, 刚才试了试彻底寄了: https://api.bilibili.com/x/space/wbi/acc/info?mid=1485569 SK-415/bilireq#18

https://github.com/velvetflame/liveStatusCheck

修改了一下他的源码 现在使用更少的依赖,并且不再需要无头浏览器 https://github.com/wosiwq/liveStatusCheck

djkcyl commented 1 year ago

该BUG新版本已修复