feat: 新增黑名单用户及VIP用户处理逻辑,同时修改ALLOW_USERS的校验为userid(SenderStaffId),将用户相关校验统一为userid (#190)

This commit is contained in:
Finly
2023-04-09 21:02:33 +08:00
committed by GitHub
parent 40d324ccb6
commit 4a29f1ef8f
8 changed files with 90 additions and 25 deletions

View File

@@ -225,14 +225,19 @@ func CheckRequestTimes(rmsg *dingbot.ReceiveMsg) bool {
return true
}
count := public.UserService.GetUseRequestCount(rmsg.GetSenderIdentifier())
// 判断访问次数是否超过限制
if count >= public.Config.MaxRequest {
logger.Info(fmt.Sprintf("亲爱的: %s您今日请求次数已达上限请明天再来交互发问资源有限请务必斟酌您的问题给您带来不便敬请谅解!", rmsg.SenderNick))
_, err := rmsg.ReplyToDingtalk(string(dingbot.TEXT), fmt.Sprintf("一个好的问题,胜过十个好的答案!\n亲爱的: %s您今日请求次数已达上限请明天再来交互发问资源有限请务必斟酌您的问题给您带来不便敬请谅解!", rmsg.SenderNick))
if err != nil {
logger.Warning(fmt.Errorf("send message error: %v", err))
// 用户是管理员或VIP用户判断访问次数是否超过限制
if public.JudgeAdminUsers(rmsg.SenderStaffId) || public.JudgeVipUsers(rmsg.SenderStaffId) {
return true
} else {
// 用户不是管理员和VIP用户判断访问次数是否超过限制
if count >= public.Config.MaxRequest {
logger.Info(fmt.Sprintf("亲爱的: %s您今日请求次数已达上限请明天再来交互发问资源有限请务必斟酌您的问题给您带来不便敬请谅解!", rmsg.SenderNick))
_, err := rmsg.ReplyToDingtalk(string(dingbot.MARKDOWN), fmt.Sprintf("[Staple] **一个好的问题,胜过十个好的答案!** \n\n亲爱的%s:\n\n您今日请求次数已达上限请明天再来交互发问资源有限请务必斟酌您的问题给您带来不便敬请谅解\n\n如有需要可联系管理员升级为VIP用户。", rmsg.SenderNick))
if err != nil {
logger.Warning(fmt.Errorf("send message error: %v", err))
}
return false
}
return false
}
// 访问次数未超过限制将计数加1
public.UserService.SetUseRequestCount(rmsg.GetSenderIdentifier(), count+1)