[docs]classQueryConverter(Transformer):"""Converts a query to a Query object"""
[docs]@classmethodasyncdefconvert(cls,ctx:DISCORD_CONTEXT_TYPE,arg:str)->Query:# noqa"""Converts a query to a Query object"""arg=arg.strip("<>")returnawaitQuery.from_string(arg)
[docs]@classmethodasyncdeftransform(cls,interaction:DISCORD_INTERACTION_TYPE,argument:str)->Query:"""Transforms a query to a Query object"""ifnotinteraction.response.is_done():awaitinteraction.response.defer(ephemeral=True)ctx=awaitinteraction.client.get_context(interaction)returnawaitcls.convert(ctx,argument)
[docs]asyncdefautocomplete(self,interaction:DISCORD_INTERACTION_TYPE,current:str)->list[Choice]:"""Autocompletes a query to a Query object"""return[]
[docs]classQueryPlaylistConverter(Transformer):"""Converts a query to a Query object"""
[docs]@classmethodasyncdefconvert(cls,ctx:DISCORD_CONTEXT_TYPE,arg:str)->Query:# noqa"""Converts a query to a Query object"""arg=arg.strip("<>")query=awaitQuery.from_string(arg)ifnot(query.is_playlistorquery.is_album):raisecommands.BadArgument(_("The query must be a playlist or album."))returnquery
[docs]@classmethodasyncdeftransform(cls,interaction:DISCORD_INTERACTION_TYPE,argument:str)->Query:"""Transforms a query to a Query object"""ifnotinteraction.response.is_done():awaitinteraction.response.defer(ephemeral=True)ctx=awaitinteraction.client.get_context(interaction)returnawaitcls.convert(ctx,argument)
[docs]asyncdefautocomplete(self,interaction:DISCORD_INTERACTION_TYPE,current:str)->list[Choice]:"""Autocompletes a query to a Query object"""return[]