Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Discord.py TypeError:on_message()缺少1个仅限关键字的必需参数:';搜索';_Python_Python 3.x_Discord_Discord.py_Discord.py Rewrite - Fatal编程技术网

Python Discord.py TypeError:on_message()缺少1个仅限关键字的必需参数:';搜索';

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(

在这里遇到一些麻烦,我尝试阅读文档,但没有任何帮助,非常感谢,谢谢

is的工作原理示例如下:
!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
。谢谢您的帮助