python - pyrogram - 过滤发送给机器人的命令
问题描述
如果我使用类似的东西过滤命令filters.command(["my_command"]
,当我执行命令时,机器人会在组中得到通知/my_command
,但如果我将其发送给机器人(例如/my_command@MyBot
),它将不会得到通知。
如何修改过滤器以在两种情况下都得到通知(独立于机器人名称)?
谢谢
解决方案
您需要将每个选项传递给filter.commands
,包括带有机器人名称的变体。
如果您正在寻找更动态的解决方案,您可以使用类似
commands = [ 'hello', 'world' ]
myBot = 'myBotName'
for i in range(len(commands)):
commands.append(commands[i] + "@" + myBot)
print(commands)
// ['hello', 'world', 'hello@myBotName', 'world@myBotName']
这将遍历命令列表,以及附加了机器人名称的相同命令。
对于更多的复制/粘贴逻辑,您可以从pyrogram
自身检索机器人名称。
如果我们看一下 Pyrogram 的User
类;我们将看到以下数据:
- username (str, optional) -- 用户或机器人的用户名。
在上面的示例中,这似乎非常适合自动化myBot
变量。
推荐阅读
- linux - 如何通过 RDP 访问 Azure Linux 虚拟机
- python - pandas.groubpy.apply 执行了太多次?
- jenkins - 条件步骤(多个) - Jenkins 中的量角器分片直到最后一步才运行
- php - 通过 curl 返回错误获取给出“echo json_encode”的页面
- react-native - 使用 React Navigation 时,打开带有通知的应用程序会导致标题增长
- javascript - Javascript递归:从M长度的N个数组中提取单个项目的所有唯一组合
- reactjs - 如何使类组件方法可以在 React 和 Typescript 中的组件之外访问?
- c# - 如何从表中添加一些列并在另一个中显示它们
- reactjs - 如何将 props 接管给其他组件?打字稿反应
- google-colaboratory - 上下文版本冲突错误,Google colab