Discord.py 如何检查小部件是否被禁用
Discord.py how to check if the widget is disabled
我正在尝试检查小部件是否已启用以避免 HTTP 错误 (404)。但我找不到办法,甚至查看 API 参考资料。你能帮我么?谢谢。
虽然我通常建议不要在没有特定错误的情况下使用 except,但它会在使用 urllibs HTTPError 时忽略异常。如果小部件被禁用,你应该得到一个 Forbidden: 403 错误,而不是 404。
由于您没有提供任何代码或示例,我只是编写了一个小命令,returns如果公会的小部件可用。
@bot.command()
async def check_widget(ctx):
try:
widget = await ctx.guild.widget()
ctx.send("Widget Available!")
except:
await ctx.send("Widget unavailable!")
Discord 重写没有检查小部件是否在线的选项。为了检查这最终检查您是否可以获得有效响应。因此,为了仍然能够检查您需要尝试使用小部件来检查它是否在线。
每当您收到 HTTP 错误时,您就知道它处于脱机状态(或无法运行)。
我的建议是创建一个简单的函数来检查它是否在线:
# Checks if the widget is online by
# trying to access the widget through a guild object.
async def widget_is_online(guild):
try:
# or a function that needs online functionality
await guild.widget()
return True
except:
return False
东西说的也是个好主意。就是在你尝试使用widget的地方使用一个try-except。 except 捕获 http 错误异常的地方。这可能比使用前面描述的函数更好更快,以防止 http 错误。
我正在尝试检查小部件是否已启用以避免 HTTP 错误 (404)。但我找不到办法,甚至查看 API 参考资料。你能帮我么?谢谢。
虽然我通常建议不要在没有特定错误的情况下使用 except,但它会在使用 urllibs HTTPError 时忽略异常。如果小部件被禁用,你应该得到一个 Forbidden: 403 错误,而不是 404。
由于您没有提供任何代码或示例,我只是编写了一个小命令,returns如果公会的小部件可用。
@bot.command()
async def check_widget(ctx):
try:
widget = await ctx.guild.widget()
ctx.send("Widget Available!")
except:
await ctx.send("Widget unavailable!")
Discord 重写没有检查小部件是否在线的选项。为了检查这最终检查您是否可以获得有效响应。因此,为了仍然能够检查您需要尝试使用小部件来检查它是否在线。
每当您收到 HTTP 错误时,您就知道它处于脱机状态(或无法运行)。
我的建议是创建一个简单的函数来检查它是否在线:
# Checks if the widget is online by
# trying to access the widget through a guild object.
async def widget_is_online(guild):
try:
# or a function that needs online functionality
await guild.widget()
return True
except:
return False
东西说的也是个好主意。就是在你尝试使用widget的地方使用一个try-except。 except 捕获 http 错误异常的地方。这可能比使用前面描述的函数更好更快,以防止 http 错误。