Skip to content

Commit

Permalink
Add a new view example for link buttons
Browse files Browse the repository at this point in the history
  • Loading branch information
Ay-355 authored Jul 22, 2021
1 parent 2385240 commit fc51736
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions examples/views/link.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
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('$'))

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('token')

0 comments on commit fc51736

Please sign in to comment.