MoeNetwork / Tieba-Cloud-Sign

百度贴吧云签到,在服务器上配置好就无需进行任何操作便可以实现贴吧的全自动签到。配合插件使用还可实现云灌水、点赞、封禁、删帖、审查等功能。注意:Gitee (原Git@osc) 仓库将不再维护,目前唯一指定的仓库为 Github。本项目没有官方交流群,如需交流可以直接使用Github的Discussions。没有商业版本,目前贴吧云签到由社区共同维护,不会停止更新(PR 通常在一天内处理)。
https://github.com/MoeNetwork/Tieba-Cloud-Sign/wiki
Other
1.81k stars 414 forks source link

紧急bug: 修复获取贴吧fid #220

Closed Weltolk closed 1 year ago

Weltolk commented 1 year ago

获取贴吧fid时,返回包json中,'no'键的值的类型为int

https://github.com/MoeNetwork/Tieba-Cloud-Sign/blob/023316e0df05ddafd55060717f399d617854c618/lib/class.misc.php#L152

而代码中判断的时候将类型设为了str,最终会导致获取贴吧fid时永远为false(即永远获取不到贴吧fid),除非本身贴吧fid已经在数据库中存在了:

https://github.com/MoeNetwork/Tieba-Cloud-Sign/blob/023316e0df05ddafd55060717f399d617854c618/lib/class.misc.php#L146

我猜可能是百度贴吧更新了?

n0099 commented 1 year ago

https://github.com/MoeNetwork/Tieba-Cloud-Sign/discussions/218#discussioncomment-3970768

n0099 commented 1 year ago

现在根.error_code也有可能随机字符串或数值了: image image


php一个intval()https://github.com/MoeNetwork/Tieba-Cloud-Sign/pull/220#discussion_r1005748769

$errno = $json['error_no'] ?? -1;
is_numeric($errno) ? intval($errno) : -1;

就能解决的c#里我得写这么一坨: https://github.com/n0099/TiebaMonitor/commit/c4dff73005be68f7b4d084f99e641fa471759969#diff-c72d6db81943e3b2bbd993399245fa5f948dbdb1c74491a322a0cefa35eb886cR47 image

要是语法臃肿的java我想都不敢想了