
Security News
libxml2 Maintainer Ends Embargoed Vulnerability Reports, Citing Unsustainable Burden
Libxml2’s solo maintainer drops embargoed security fixes, highlighting the burden on unpaid volunteers who keep critical open source software secure.
A responsive package for Buttons, DropMenus, Combinations and Paginator
Python 3.8 or higher is required !
# Linux/macOS
python3 -m pip install discord-btns-menus
# Windows
# Method-1:
py -3 -m pip install discord-btns-menus
# or
python -m pip install discord-btns-menus
# Method-2:
pip install discord-btns-menus
# Using GIT for ALPHA or BETA Versions
# Method-1:
pip install git+https://github.com/Modern-Realm/discord_btns_menus.git
# Method-2:
pip install -U git+https://github.com/Modern-Realm/discord_btns_menus
You can use ANY ONE of the below Package
For disnake you should Refactor all discord terms to disnake terms to make Package work
Note: Don't install more than one DEPENDENCY !
Create a file with '.py ' extension, Like: main.py
from btns_menus.Buttons import SButton, SingleButton
from btns_menus.DropMenus import SDropMenu, DuoDropMenu
from btns_menus.Combinations import BtnAndDropMenu, MultiBtnAndMenu
import discord
from discord.ext import commands
intents = discord.Intents.all()
activity = discord.Game("&help - phoenix")
client = commands.Bot(command_prefix="&", intents=intents, activity=activity)
@client.event
async def on_ready():
await client.change_presence(status=discord.Status.online)
print("Bot is Ready !")
@client.command()
async def test(ctx):
user = ctx.author
btn1 = SButton(label="Hello", response="Hello have a nice day !")
view_ = SingleButton(user, btn1).view()
await ctx.send("click here !", view=view_)
if __name__ == "__main__":
client.run('token')
Button type DuoButton, for more samples go to Examples/Buttons
@client.command()
async def test(ctx):
user: discord.Member = ctx.author
btn1 = SButton(label="Wave 👋", response=f"Hello {user.mention} have a nice day !")
btn2 = SButton(label="Bye", response=f"Bye {user.mention} see you later !", style=ButtonStyle.secondary)
view_ = DuoButton(user, btn1, btn2).view()
await ctx.send(f"Sample buttons ...", view=view_)
DropMenu type DuoDropMenu, for more samples go to Examples/DropMenuss
@client.command()
async def test(ctx):
user: discord.Member = ctx.author
menu1 = SDropMenu(placeholder="select one", options=[
SelectOption(label="username"),
SelectOption(label="None of the above")
])
menu1.add_query(("username", f"username: {user.name}"))
menu2 = SDropMenu(placeholder="choose one", options=[
SelectOption(label="discriminator"),
SelectOption(label="None of the above")
])
menu2.add_query(("discriminator", f"discriminator: {user.discriminator}"))
view_ = DuoDropMenu(user, menu1, menu2).view()
await ctx.send(f"Sample buttons ...", view=view_)
Usage of both Buttons and DropMenus at once ...
@client.command()
async def test(ctx):
user: discord.Member = ctx.author
btn1 = SButton(label="Delete Menu", style=ButtonStyle.danger, delete_msg=True)
menu1 = SDropMenu(placeholder="Select one", options=[
SelectOption(label="About Python", value="python")
])
menu1.add_query(("python", "Python is a widely-used, interpreted, object-oriented and"
" high-level programming language with dynamic semantics, used for general-purpose programming.\n"
"It was created by Guido van Rossum, and first released on February 20, 1991."))
view_ = BtnAndDropMenu(user, btn1, menu1).view()
await ctx.send(f"Sample buttons & Menus combinations ...", view=view_)
Button type MultiButton, for more samples go to Examples/Buttons
The Process for MultiDropMenu will be the same ...
@client.command()
async def test(ctx):
user: discord.Member = ctx.author
user_avatar = user.display_avatar or user.default_avatar
btn1 = SButton(label="username", style=ButtonStyle.primary, response=user.name)
btn2 = SButton(label="discriminator", style=ButtonStyle.secondary, response=user.discriminator)
btn4 = SButton(label="Avatar", style=ButtonStyle.secondary, response=str(user_avatar), ephemeral=True)
btn3 = SButton(label="Server Name", style=ButtonStyle.secondary, response=user.guild.name)
btn5 = SButton(label="Display Name", style=ButtonStyle.secondary, response=user.display_name)
btn6 = SButton(label="Delete Menu", style=ButtonStyle.danger, delete_msg=True)
buttons = [btn1, btn2, btn3, btn4, btn5, btn6]
view_ = MultiButton(user, buttons).view()
await ctx.send(f"Sample Usage of Multi Buttons ...", view=view_)
It is used for help commands which sends the embeds like page-wise using buttons & Drop Menus
from btns_menus.Paginator import *
from datetime import datetime
import discord
# This function is for sample purposes, use discord.Embed instead [RECOMMENDED]
def embed(context: str, color=0xffff00, timestamp: bool = False) -> discord.Embed:
present_time = datetime.utcnow() if timestamp else None
em = discord.Embed(description=context, color=discord.Color(color), timestamp=present_time)
return em
@client.command()
async def help(ctx):
user = ctx.author
embeds = [embed("embed-1"), embed("embed-2"), embed("embed-3"),
embed("embed-4"), embed("embed-5"), embed("embed-6")]
cmd_list = [
SOption(name="moderation", embed_=embeds[1]),
SOption(name="giveaways", embed_=embeds[2]),
SOption(name="links", embed_=embeds[3])
]
view_ = Paginator(user, embeds, commands_list=cmd_list).view()
await ctx.send(embed=embeds[0], view=view_)
You can get support/help/guidance from below social-media links
FAQs
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Libxml2’s solo maintainer drops embargoed security fixes, highlighting the burden on unpaid volunteers who keep critical open source software secure.
Research
Security News
Socket investigates hidden protestware in npm packages that blocks user interaction and plays the Ukrainian anthem for Russian-language visitors.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.