Python Discord.py TypeError:on_message()缺少1个仅限关键字的必需参数:';搜索';
在这里遇到一些麻烦,我尝试阅读文档,但没有任何帮助,非常感谢,谢谢 is的工作原理示例如下:Python Discord.py TypeError:on_message()缺少1个仅限关键字的必需参数:';搜索';,python,python-3.x,discord,discord.py,discord.py-rewrite,Python,Python 3.x,Discord,Discord.py,Discord.py Rewrite,在这里遇到一些麻烦,我尝试阅读文档,但没有任何帮助,非常感谢,谢谢 is的工作原理示例如下: !yt永远不会放弃你 Bot:https://youtu.be/dQw4w9WgXcQ 以下是整个代码cog: 我更新了问题,使用这个版本,我可以在youtube上搜索,但它搜索整个字符串,我只需要在之后搜索字符串!yt如果这里有人知道这是如何实现的,请让我知道,再次感谢所有帮助on_message事件只接受1个参数,即message对象本身。 你想做什么 @commands.Cog.listener(
!yt永远不会放弃你
Bot:https://youtu.be/dQw4w9WgXcQ
以下是整个代码cog:
我更新了问题,使用这个版本,我可以在youtube上搜索,但它搜索整个字符串,我只需要在
之后搜索字符串!yt
如果这里有人知道这是如何实现的,请让我知道,再次感谢所有帮助on_message事件只接受1个参数,即message对象本身。
你想做什么
@commands.Cog.listener()
async def on_message(self, message):
if message.guild.id == 464298877823221761:
if message.content.find("!yt") != -1:
query_string = urllib.parse.urlencode({'search_query': message})
htm_content = urllib.request.urlopen('http://www.youtube.com/results?' + query_string)
search_results = re.findall(r'/watch\?v=(.{11})',htm_content.read().decode())
await message.channel.send('http://www.youtube.com/watch?v=' + search_results[0])
await self.bot.process_commands
然后,您可以使用message对象的.content
属性来执行此操作,而不是使用搜索参数(据我所知,搜索参数应该是整个消息内容)
因此,您可以通过执行以下操作来获取查询字符串:
async def on_message(self, ctx, message):
消息上的
事件只接受1个参数,即消息对象本身。
你想做什么
@commands.Cog.listener()
async def on_message(self, message):
if message.guild.id == 464298877823221761:
if message.content.find("!yt") != -1:
query_string = urllib.parse.urlencode({'search_query': message})
htm_content = urllib.request.urlopen('http://www.youtube.com/results?' + query_string)
search_results = re.findall(r'/watch\?v=(.{11})',htm_content.read().decode())
await message.channel.send('http://www.youtube.com/watch?v=' + search_results[0])
await self.bot.process_commands
然后,您可以使用message对象的.content
属性来执行此操作,而不是使用搜索参数(据我所知,搜索参数应该是整个消息内容)
因此,您可以通过执行以下操作来获取查询字符串:
async def on_message(self, ctx, message):
这将不起作用,因为这将导致错误:TypeError:on_message()缺少1个必需的位置参数:“message”
我感谢您的帮助这是我的全部重心:您提供的代码有错误。请查看我在OPs问题下的评论并编辑您的答案。这将导致错误:TypeError:on_message()缺少1个必需的位置参数:“message”
我感谢您的帮助这是我的全部cog:您提供的代码有错误。请查看我在OPs问题下的评论并编辑您的答案。它是消息上的异步定义(self,message)
。没有ctx
我不是为了某个目的而使用命令,我是在询问是否有办法使用消息上的来实现这一点,这里您看到了一个由@commands.Cog.listener()修饰的方法:方法参数中没有ctx
。感谢您的帮助,消息上的异步定义(self,message)
。没有ctx
我不是为了某个目的而使用命令,我是在询问是否有办法通过消息上的实现这一点。这里您看到了一个由@commands.Cog.listener()
修饰的方法。再次说明:在方法参数中没有ctx
。谢谢您的帮助