我不熟悉Python,所以我担心这对你们所有人来说都是一个愚蠢的问题,但我已经尽力解决了。
我自己做了一个项目,制作一个机器人来做一些无聊的任务,只是为了好玩。
首先,我做了一个函数,让它接收一个带有“on_message”事件的消息,这很好
import discord
import os
discordClient = discord.Client()
@discordClient.event #event register
async def on_ready():
print('Logged in as {0.user}'.format(discordClient))
await routineAnnouncer.createDisocrdRoutine(discordClient)
@discordClient.event
async def on_message(message):
checked = False
if message.author == discordClient.user:
checked = True
return
else:
print("Get Message {0.content} from {0.author.name} ({0.author.id}) @{0.channel.name} ({0.channel.id})".
format(message))
#-------------------------- RUN ----------------------
print('Registering EVENTS COMPLETE')
discordClient.run(os.environ['discordToken'])
我在Repl上编码。它和“os.environ”是它的检索方式。环境。
以下是“on_ready”事件中使用的“routineAnnouncer”中的代码
import os #ใช้ดึง .env (secret)
import schedule
import time
def scheduleAnnouncer(discordClient,announceType,announceDetail):
print("Announcing {} {}".format(announceType,announceDetail))
lzChannel = discordClient.get_channel(int(os.environ['lz_token_test']))
discordClient.loop.create_task(lzChannel.send("Announcing {} {}".format(announceType,announceDetail)))
async def createDisocrdRoutine(discordClient):
print("Registering CRONJOBS...")
scheduleAnnouncer(discordClient,"headerTest","descTest")
schedule.every(5).seconds.do(scheduleAnnouncer,discordClient,"header1","desc1")
schedule.every(10).seconds.do(scheduleAnnouncer,discordClient,"header2","desc2")
# while True:
# schedule.run_pending()
# time.sleep(5)
因此,它应该在连接准备好并设置调度文本后创建DiscrdRoutine()。
正如您所看到的,代码的最后一部分被注释了。它应该是一个循环,触发通过discord发送到指定频道的预定文本。身份证件
到这一点。代码工作正常。on_message(消息)部分能够打印出发送到信道的任何内容。该功能"安排公告"也工作正常。它可以向信道发送消息。不和谐屏幕Repl.it屏幕
在循环后,“同时:真实”是未注释的,以便让计划工作。循环工作正常。它打印出文本,如环路所示。但是不和谐无法检测到以前发送到同一频道的任何文本。甚至应该发送消息的功能“时间表播音员”也坏了。感觉一旦“当:真实”没有被评论,任何与不和谐有关的东西都被打破了。不和谐屏幕Repl.it屏幕
我试图将调度分离到另一个线程中,但它不起作用。我试图使用其他cronwork管理,如cronwork,sched或其他东西。他们中的大多数让我面对其他问题。
先谢谢你。我不知道下一步该做什么或检查。每次我试图解决它。我总是循环回到“时间表”,并尝试一遍又一遍地处理它。
我希望这些信息足够了。非常感谢您抽出时间。
时间。sleep()
不是异步的,因此它将冻结您的程序。使用wait asyncio。sleep()
。这是因为它暂停了整个程序,而不仅仅是该功能。
在这里使用wait()的原因是wait()是非阻塞的,而time是非阻塞的。sleep()正在阻塞。这意味着当你利用时间的时候。sleep(),您将阻止主线程在等待sleep()调用结束时继续运行。wait()解决了这个问题。
引用RealPython
问题内容: 在Xcode中编译项目时出现错误,它说: 表达过于复杂,无法在合理的时间内解决;考虑将表达式分解为不同的子表达式 这是代码: 问题答案: 为什么不通过将表达式分解为两个子表达式来降低编译器的复杂性? 您也可以使用(或更多的“ Swifty” 或)来提高可读性。如果我记得,它是标头中定义的无符号32位Integer最大值的十六进制值。
我正在为Minecraft服务器的discord制作一个机器人。我在下面有一个on_会员加入事件和on_消息事件。on_member_join工作得很好,但是当我在discord服务器中发送消息时,on_message事件内部不会发生任何事情。这是我的代码,如果有人有可能的解决方案,我会非常感激。
本文向大家介绍JS设置时间无效问题的解决办法,包括了JS设置时间无效问题的解决办法的使用技巧和注意事项,需要的朋友参考一下 在发送短信息验证码的时候要用到js设置时间倒序问题:有时候这种常规写法会导致js失效,试了很多方法才找到问题所在,可能是因为js版本过低导致。 解决方法: 或者: jquery代码:必须用input设置value值,以便利用jquery更改value值 以上所述是小编给大家介
我已经修复了firebase实时数据库上的读取和正确规则,但我仍然无法对其进行读取和写入。 我也试过这个: Firebase存储规则: Firebase存储规则工作正常,因为图像已上载并调用onSuccessListener。 我用来在数据库上设置值的代码如下所示,我已经将引用定义为:
希望有人能帮上忙。 我们为一个客户端创建了一个应用程序,该应用程序创建了预填充的Google表单,这些表单链接回一个公共电子表格,其他表单链接到表单。表单完成后,脚本将定位相应的表单,打开表单并从电子表格中取消表单链接。然后从电子表格中删除未链接表单的工作表 99%的时间按预期工作,但有时无法删除工作表,也无法通过代码或手动取消链接删除表单。 我们还可以在工作表名称后面添加冲突消息。例如,这是创建
我有多张图纸,将由最终用户命名。这些图纸的名称存储在命名范围内,最终用户也会更新该范围。这些工作表中的每一张都包含需要拉入主工作表的数据。为了清晰起见,让我们为他们提供一些名称: 工作表包含提取的数据 范围包含工作表名称 例如,工作表,包含要提取的数据,并且该名称存在于