首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令处理程序Telethon

命令处理程序Telethon
EN

Stack Overflow用户
提问于 2021-10-03 12:45:16
回答 1查看 312关注 0票数 1

我开始使用Telethon库构建一个机器人,但找不到一种清晰的方法来将命令与文本分开。

例如,使用python-telegram-bot库,我可以检索命令后的第一个参数,如下所示:

代码语言:javascript
复制
def test(update, context):
    arg_1 = context.args[0]
    print(arg_1) # Prints the first word after the command

所以..。有没有办法用Telethon制作这样的东西?(我正在使用这段代码将文本从命令中分离出来,但我认为这种方法并不是很好):

代码语言:javascript
复制
txt = event.message.message.lower()
try:
    txt.split("!raw ")[1]
    text = event.message.message[4:]
except Exception as e:
    text = ""
    

if text:
    do_something()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-03 13:14:23

如果您有一个按以下方式定义的处理程序:

代码语言:javascript
复制
@client.on(events.NewMessage(pattern=r'!raw (\w+)'))
async def handler(event):
    ...

然后,您可以访问event.pattern_match

代码语言:javascript
复制
arg = event.pattern_match.group(1)
print(arg)  # first word

但是,使用.split()也是可以的:

代码语言:javascript
复制
parts = event.raw_text.split()
if len(parts) > 1:
    arg = parts[1]

(您还可以通过告诉用户何时使用了错误的命令来构建更好的UX。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69424963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档