Python电报机器人获得所有作业及其名称?

2024-04-29 07:05:41 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我有一个机器人,用户a可以创建订阅并删除它(通过电报的作业队列)。典型的jobname是它的聊天ID和用户给定的唯一名称。例如,一个用户有两个订阅(1:154678测试2:154678周末)。如果用户想要删除“Test”,bot可以使用context.job_queue.get_jobs_by_name(name="154678Test")删除它,然后删除它。我想通过给用户一个选项(通过内联键盘或其他方式)来改进bot(使用他/她的聊天id 154678)当前正在运行的作业。我最初的解决方案是获取所有作业名称,并使用聊天id对它们进行regex/过滤,但是当我遇到Guide。当我调用context.job_queue.jobs()要获取bot中当前的所有作业,它将返回作业对象列表,而不是其名称(0x00016cda9928等,而不是154678Test)。我还尝试使用context.job_queue.get_jobs_by_name(name="154678"),但它返回空,因为它可能完全匹配

有没有办法通过context.job_queue.jobs()context.job_queue.get_jobs_by_name要有正则表达式选项吗


Tags: 用户name名称idgetbyqueuebot
1条回答
网友
1楼 · 发布于 2024-04-29 07:05:41

例如,context.job_queue.jobs()将返回具有0x00016cda9928十六进制代码的作业列表。 要获取每个作业名称的名称,请执行以下操作:

job_names = [job.name for job in context.job_queue.jobs()]

此列表将返回作业名称列表(str)。示例结果:

job_names = ['firstjob', 'secondjob' , 'thirdjob']

相关问题 更多 >