mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-08 14:26:37 +08:00
fix(telegram): 区分'不在群'与'查不了',修复在群却被拒注册/绑定
getChatMember 失败(Bot不在群/频道非管理员/群ID失效/代理超时)此前被 吞成 false,导致已在群用户收到'不在绑定群组'误导提示。 - telegramChatMembership 返回三态(是/否/查不了) - telegramUserBindDecision 据此返回 allowed/denied/unverifiable - 四个拦截点(start绑定/register/redeem注册/hideadult)在'查不了' 时改提示管理员检查Bot权限与群ID,不再误导用户 - syncgroupm 仅在'查实非成员'时判定可清理,查不了保守跳过防误删 - getChatMember 超时 8s->15s,缓解代理回退预算耗尽
This commit is contained in:
@@ -526,8 +526,8 @@ func (s *TelegramBotService) redeemRegisterFlow(ctx context.Context, channel *mo
|
||||
if channel == nil {
|
||||
channel = s.findChannelForMessage(ctx, msg)
|
||||
}
|
||||
if !s.telegramUserCanBind(ctx, channel, msg.From.ID) {
|
||||
return telegramCommandReply{Text: "当前 Telegram 账号不在管理员配置的绑定群组/频道中,无法兑换注册账号。请先加入管理员配置的群组或频道;如果尚未配置,请联系管理员。"}
|
||||
if dec := s.telegramUserBindDecision(ctx, channel, msg.From.ID); dec != bindAllowed {
|
||||
return telegramCommandReply{Text: telegramBindRejectText(dec, "兑换注册账号")}
|
||||
}
|
||||
rc, errMsg := s.lookupRedeemableCode(ctx, raw, model.RegistrationCodeRegister)
|
||||
if rc == nil {
|
||||
|
||||
Reference in New Issue
Block a user