![](/img/trans.png)
[英]When the command / start is sent to the bot, the bot should delete the stickers sent to the group; but the bot does not work
[英]The telegram bot does not delete stickers from the group
我使用Python-Telegram-Bot框架和Re Module创建了一个电报机器人。 僵尸程序应删除成员发送给组的标签,即当单词start
发送给组时,它将删除在组start
之后发送的僵尸程序标签。
我的代码:
from telegram.ext import Updater, MessageHandler, Filters
import re
def delete_method(bot, update):
mlist=['/start']
for i in mlist:
if re.match(i, update, message.text):
update.message.delete()
def main():
updater = Updater(token='TOKEN')
dispatcher = updater.dispatcher
dispatcher.add_handler(MessageHandler(Filters.all, delete_method))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
# for exit
# updater.idle()
但是,该漫游器无法正常工作,也就是说,在将发送start
字样发送给该组之后,它不会删除发送给该组的标签。
代码没有任何错误,该组是一个超级组,该机器人是admin,可以访问消息!
您认为是什么问题???
if re.match(i, update, message.text):
这行是问题。 您正在update
对象中搜索i
(其值为/start
)。 我不明白为什么这应该工作。
您需要检查当前消息是否为贴纸。 如果消息是贴纸,则update.effective_message.sticker
将返回一个值。 否则它将返回None
。 所以我猜你可以检查贴纸-我没有测试:
from telegram.ext import Updater, MessageHandler, Filters
def delete_sticker(bot, update):
if update.effective_message.sticker:
update.message.delete
if __name__ == '__main__':
updater = Updater(token='TOKEN')
dispatcher = updater.dispatcher
dispatcher.add_handler(MessageHandler(Filters.all, delete_sticker))
updater.start_polling()
updater.idle()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.