import sys from urllib.parse import quote_plus import discord import os from discord.ext import commands intents = discord.Intents.default() class LMGTFYBot(commands.Bot): def __init__(self): intents = discord.Intents.default() intents.message_content = True super().__init__( command_prefix=commands.when_mentioned_or('!'), intents=intents ) async def on_ready(self): print(f'Logged in as {self.user})') print('------') class LMGTFY(discord.ui.View): def __init__(self, query: str): super().__init__() query = quote_plus(query) search_url = f'https://lmgtfy.asdf.cafe/?search={query}' self.add_item(discord.ui.Button( label='Google Search', url=search_url) ) self.add_item(discord.ui.Button( label='Feeling Lucky', url=search_url+"&lucky=true") ) bot = LMGTFYBot() @bot.event async def on_message(message: discord.Message): if message.author == bot.user: return if message.reference is None: if message.content.startswith("!lmgtfy"): if len(message.content.split()) > 1: await message.reply('I will do it for you :)', view=LMGTFY( message.content.split(' ', 1)[1]) ) return if "google it" in message.content.lower(): if message.reference.message_id is None: return repl = await message.channel.fetch_message( message.reference.message_id ) await repl.reply('I will do it for you :)', view=LMGTFY(repl.content)) if message.content == "!lmgtfy": if message.reference.message_id is None: return repl = await message.channel.fetch_message( message.reference.message_id ) await repl.reply('I will do it for you :)', view=LMGTFY(repl.content)) @bot.command() async def lmgtfy(ctx: commands.Context, search: str | None): if search is None: if ctx.message.reference is None: return if ctx.message.reference.message_id is None: return repl = await ctx.fetch_message(ctx.message.reference.message_id) await repl.reply('I will do it for you :)', view=LMGTFY(repl.content)) if search is not None: await ctx.reply('I will do it for you :)', view=LMGTFY(search)) return TOKEN = os.getenv("TOKEN") if TOKEN is None: sys.exit("TOKEN INVALID") bot.run(TOKEN)