对于我的不和谐机器人,我希望每5秒钟根据最近是否在聊天室中键入一些内容,发送一条消息,说“你已经说了”。 例如,如果我发送了这些消息(如下) 嗨(消息#1,已经过去了一秒钟) 嗨(消息#2,已经过了两秒钟) 嗨(消息#3,已经过去了三秒钟) 嗨(消息#4,已过去5秒) (机器人说):您已经说过了(记住,机器人只说了一次,而不是说四次)
但是,到目前为止,它是空闲的并且不发送任何消息。我没有收到任何错误,该机器人本身可以运行并处于在线状态。我想知道是否有人可以帮助我编辑我的代码,以便如果我说了什么,则在5秒钟后,机器人只会说一次“您已经说了话”。该代码之前的先前问题包括漫游器向“您说过的内容”发送垃圾邮件,这就是为什么我希望它只说一次“您说过的内容”。
异步定义on_message(message): 如果message.author.id =='XXXXXXXXXXXXXXX':
mins = 0 #mins standing for minutes#
num = 0 #var for counting how many times bot has sent msg#
if "" in message.content.lower(): #means if I say anything#
if mins % 5 == 0: #if seconds past is divisible by 5 (meaning 5 seconds have past)
num +=1
if num == 1:
msg = 'You have spoken!'
await client.send_message(message.channel,msg)
num -=1 #make num 0 again so bot does not repeatedly send msg#
time.sleep(5)
mins +=1
if (mins % 5)>0:
time.sleep(5)
mins +=1 #do nothing if not divisible#
我希望机器人每5秒钟讲一次,说一次“您说过话”。
答案 0 :(得分:3)
每当漫游器看到一条消息时,请将该消息的时间戳记与漫游器最后响应的消息的时间戳进行比较。如果超过五秒钟,请记录该时间戳记并发送一条消息:
cols = list(df.columns.values)
cols.pop(cols.index(val))
df = df[[val] + cols]