我写过一个电报机器人,删除在特定时间之间发送给超级组的消息。我正在使用 Telegram.Bot 版本12.0.0-beta-04。
private async void Bot_OnMessage(object sender, MessageEventArgs e)
{
if(DateTime.Now.Hour<=6 and DateTime.Now.Minute<=30)
{
_bot.DeleteMessageAsync(e.Message.Chat.Id, e.Message.MessageId);
}
}
问题在于,例如,如果在凌晨2点,我发送一条消息,它没有做任何事情,但如果我发送两条或更多条消息几乎没有延迟,它会工作并删除所有消息。任何想法为什么会这样?
修改 我的错。例如,如果小时为3而分钟为45,则无效。我修复了代码并且它工作正常。
if ((DateTime.Now.Hour < 6) ||
(DateTime.Now.Hour == 6 && DateTime.Now.Minute <= 30))
{
_bot.DeleteMessageAsync(e.Message.Chat.Id, e.Message.MessageId);
}
答案 0 :(得分:1)
有一个更好的解决方案来防止群组中的新消息。更改您的机器人并尝试通过“restrictChatMember”限制用户的权限,然后通过“promoteChatMember”返回其权限。