43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from discord.ext import commands
 | 
						|
 | 
						|
import discord
 | 
						|
from urllib.parse import quote_plus
 | 
						|
 | 
						|
class GoogleBot(commands.Bot):
 | 
						|
    def __init__(self):
 | 
						|
        super().__init__(
 | 
						|
            command_prefix=commands.when_mentioned_or('$'),
 | 
						|
            intents=discord.Intents(guilds=True, messages=True)
 | 
						|
        )
 | 
						|
 | 
						|
    async def on_ready(self):
 | 
						|
        print(f'Logged in as {self.user} (ID: {self.user.id})')
 | 
						|
        print('------')
 | 
						|
 | 
						|
 | 
						|
# Define a simple View that gives us a google link button.
 | 
						|
# We take in `query` as the query that the command author requests for
 | 
						|
class Google(discord.ui.View):
 | 
						|
    def __init__(self, query: str):
 | 
						|
        super().__init__()
 | 
						|
        # we need to quote the query string to make a valid url. Discord will raise an error if it isn't valid.
 | 
						|
        query = quote_plus(query)
 | 
						|
        url = f'https://www.google.com/search?q={query}'
 | 
						|
 | 
						|
        # Link buttons cannot be made with the decorator
 | 
						|
        # Therefore we have to manually create one.
 | 
						|
        # We add the quoted url to the button, and add the button to the view.
 | 
						|
        self.add_item(discord.ui.Button(label='Click Here', url=url))
 | 
						|
 | 
						|
 | 
						|
bot = GoogleBot()
 | 
						|
 | 
						|
 | 
						|
@bot.command()
 | 
						|
async def google(ctx: commands.Context, *, query: str):
 | 
						|
    """Returns a google link for a query"""
 | 
						|
    await ctx.send(f'Google Result for: `{query}`', view=Google(query))
 | 
						|
 | 
						|
 | 
						|
bot.run()
 |