Example #1
0
 async def fun(self, ctx):
     root = Page(
         "These are all the commands in the `fun` category. Use the reactions to navigate."
     )
     page1 = Page("`;8ball`\nAnswers your yes/no question.")
     page2 = Page(
         "`;fight <challenger1> <challenger2>`\nFights two people to the death!"
     )
     page3 = Page(
         "`;kill <target>/;bully <target>`\nKills/bullies your input.")
     page4 = Page("`;rate <member>`\nRates you")
     page5 = Page("`;coin/;dice`\nFlips a coin/Rolls a dice")
     page6 = Page(
         "`;cat/;dog/;hamster`\nSends you a cute GIF of a dog/cat/hamster")
     page7 = Page(
         "`;thanos`\nDetermines whether or not you were killed in the Snap")
     page8 = Page("`;rps [choice]`\nRock Paper Scissors in Discord!")
     page9 = Page("`;hack <target>`\nHacks someone")
     root.link(page1,
               description="8ball",
               reaction="1\N{combining enclosing keycap}")
     root.link(page2,
               description="Fight",
               reaction="2\N{combining enclosing keycap}")
     root.link(page3,
               description="Kill/Bully",
               reaction="3\N{combining enclosing keycap}")
     root.link(page4,
               description="Rate",
               reaction="4\N{combining enclosing keycap}")
     root.link(page5,
               description="Coin/Dice",
               reaction="5\N{combining enclosing keycap}")
     root.link(page6,
               description="Dog/Cat/Hamster",
               reaction="6\N{combining enclosing keycap}")
     root.link(page7,
               description="Thanos",
               reaction="7\N{combining enclosing keycap}")
     root.link(page8,
               description="Rock Paper Scissors",
               reaction="8\N{combining enclosing keycap}")
     root.link(page9,
               description="Hack",
               reaction="9\N{combining enclosing keycap}")
     h = Help(self.client, root)
     await ctx.send(f"Check your DMs, {ctx.message.author.mention}!")
     await h.display(ctx.message.author)
Example #2
0
from keep_alive import keep_alive
import discord

from discord_interactive import Help, Page

# Start client
global client
client = discord.Client()

################################################################################
#               Interactive help definitions start here                        #
################################################################################

# Create the pages of the tree
root = Page(
    'Welcome to the Help interface ! This is interactive, you can simply react to interact with the help :)\n\nWhat do you want to know more about ?\n'
)
page_help = Page(
    'Help pages are simply a tree of pages and the system naviguate through this tree.\n'
)
# Page are now Embed by default, you can add various fields like when you create an Embed
page_cmd = Page(
    'It\' implemented ! Try it with /guild',
    title="Guild functionality",
    color=0xE67E22
)  # You can add a title, a color, etc... (See Discord Embed documentation for more)
page_react = Page(
    'The system wait the user to react (there is no timeout yet, maybe a future feature ?). \n\n\n\n\nThen based on that reaction, the system display the next help page.'
)
page_everyone = Page(
    'Everyone can use it at the same time ! It is based on asyncio library. Since this is personal help, help message is sent to private channel with the user.'
Example #3
0
 async def web(self, ctx):
     root = Page(
         "These are all the commands in the `web` category. Use the reactions to navigate."
     )
     page1 = Page("`;google [query]`\nSearches Google")
     page2 = Page("`;youtube [query]`\nSearches YouTube")
     page3 = Page("`;wiki [query]`\nSearches Wikipedia")
     root.link(page1,
               description="Google",
               reaction="1\N{combining enclosing keycap}")
     root.link(page2,
               description="YouTube",
               reaction="2\N{combining enclosing keycap}")
     root.link(page3,
               description="Wikipedia",
               reaction="3\N{combining enclosing keycap}")
     h = Help(self.client, root)
     await ctx.send(f"Check your DMs, {ctx.message.author.mention}!")
     await h.display(ctx.message.author)
Example #4
0
 async def tag(self, ctx):
     root = Page(
         "These are all the commands in the `tag` category. Use the reactions to navigate."
     )
     page1 = Page("`;make [name] [content]`\nMakes a tag")
     page2 = Page("`;show [name]`\nShows a tag")
     page3 = Page("`;edit [name] [content]`\nEdits an existing tag")
     page4 = Page("`;delete [name]`\nDeletes an existing tag")
     page5 = Page("`;taglist`\nList of every tag")
     page6 = Page(
         "`;raw [name]`\nShows a tag with markdown escaped. Useful for editing."
     )
     page7 = Page(
         "`;create`\nWalks you through the process of making a tag. No arguments are required."
     )
     root.link(page1,
               description="Make",
               reaction="1\N{combining enclosing keycap}")
     root.link(page2,
               description="Show",
               reaction="2\N{combining enclosing keycap}")
     root.link(page3,
               description="Edit",
               reaction="3\N{combining enclosing keycap}")
     root.link(page4,
               description="Delete",
               reaction="4\N{combining enclosing keycap}")
     root.link(page5,
               description="Taglist",
               reaction="5\N{combining enclosing keycap}")
     root.link(page6,
               description="Raw",
               reaction="6\N{combining enclosing keycap}")
     root.link(page7,
               description="Create",
               reaction="7\{combining enclosing keycap}")
     h = Help(self.client, root)
     await ctx.send(f"Check your DMs, {ctx.message.author.mention}!")
     await h.display(ctx.message.author)
Example #5
0
 async def image(self, ctx):
     root = Page(
         "These are all the commands in the `image manipulation` category. Use the reactions to navigate."
     )
     page1 = Page("`;kirby [message]`")
     page2 = Page("`;lisa [message]`")
     page3 = Page("`;pewds [message]`")
     page4 = Page("`;gru [message]`")
     page5 = Page("`;linus [message]`")
     page6 = Page("`;trump [message]`")
     page7 = Page("`;elon [message]`")
     page8 = Page("`;spongebob [message]`")
     page9 = Page("`;billboard [message]`")
     page10 = Page("`;supreme [message]`")
     pagea = Page(
         "`;deepfry <member>`\nMakes your inputted member's avatar look 'deepfried'. Defaults to your own avatar if no member is given."
     )
     pageb = Page(
         "`;sad <member>`\nMakes your inputted member's avatar look sad. Defaults to your own avatar if no member is given."
     )
     pagec = Page(
         "`;emboss <member>`\nMakes your inputted member's avatar look like it has been embossed in stone. Defaults to your own avatar if no member is given."
     )
     paged = Page(
         "`;invert <member>`\nInverts your inputted member's avatar. Defaults to your own avatar if no member is given."
     )
     pagee = Page(
         "`;transform [member1] <member2>`\nTransforms your avatar into another user's and back."
     )
     root.link(page1,
               description="Kirby",
               reaction="1\N{combining enclosing keycap}")
     root.link(page2,
               description="Lisa",
               reaction="2\N{combining enclosing keycap}")
     root.link(page3,
               description="Pewds",
               reaction="3\N{combining enclosing keycap}")
     root.link(page4,
               description="Gru",
               reaction="4\N{combining enclosing keycap}")
     root.link(page5,
               description="Linus",
               reaction="5\N{combining enclosing keycap}")
     root.link(page6,
               description="Trump",
               reaction="6\N{combining enclosing keycap}")
     root.link(page7,
               description="Elon",
               reaction="7\N{combining enclosing keycap}")
     root.link(page8,
               description="Spongebob",
               reaction="8\N{combining enclosing keycap}")
     root.link(page9,
               description="Billboard",
               reaction="9\N{combining enclosing keycap}")
     root.link(page10, description="Supreme", reaction="\N{keycap ten}")
     root.link(pagea, description="Deepfry", reaction=u"\U0001F1E6")
     root.link(pageb, description="Sad", reaction=u"\U0001F1E7")
     root.link(pagec, description="Emboss", reaction=u"\U0001F1E8")
     root.link(paged, description="Invert", reaction=u"\U0001F1E9")
     root.link(pagee, description="Transform", reaction=u"\U0001F1EA")
     h = Help(self.client, root)
     await ctx.send(f"Check your DMs, {ctx.message.author.mention}!")
     await h.display(ctx.message.author)
Example #6
0
 async def text(self, ctx):
     root = Page(
         "These are all the commands in the `text manipulation` category. Use the reactions to navigate."
     )
     page1 = Page("`;secret <message>`\nTurns input into a ||spoiler||")
     page2 = Page(";echo <message>`\nRepeats input")
     page3 = Page(
         "`;tts [message]`\nTurns your input into Text to Speech. Works best on computer."
     )
     page4 = Page("`;embed <message>`\nTurns input into an embed")
     page5 = Page(
         "`;ascii [message]`\nTurns your input into Ascii art. Works best on computer and with shorter messages.."
     )
     page6 = Page(
         "`;upper [message]/;lower [message]/;reverse [message]`\nCapitalizes/Lowercases/Reverses the input"
     )
     root.link(page1,
               description="Secret",
               reaction="1\N{combining enclosing keycap}")
     root.link(page2,
               description="Echo",
               reaction="2\N{combining enclosing keycap}")
     root.link(page3,
               description="Embed",
               reaction="3\N{combining enclosing keycap}")
     root.link(page4,
               description="TTS",
               reaction="4\N{combining enclosing keycap}")
     root.link(page5,
               description="ascii",
               reaction="5\N{combining enclosing keycap}")
     root.link(page6,
               description="Upper/Lower/Reverse",
               reaction="6\N{combining enclosing keycap}")
     h = Help(self.client, root)
     await ctx.send(f"Check your DMs, {ctx.message.author.mention}!")
     await h.display(ctx.message.author)
Example #7
0
 async def info(self, ctx):
     root = Page(
         "These are all the commands in the `info` category. Use the reactions to navigate."
     )
     page1 = Page("`;help <category>`\nSends this message")
     page2 = Page("`;info`\nSends info about the bot")
     page3 = Page("`;invite`\nSends an invite link to invite the bot")
     page4 = Page("`;source`\nSends a link to the GitHub repo")
     page5 = Page("`;uptime`\nSends the uptime")
     root.link(page1,
               description="Help",
               reaction="1\N{combining enclosing keycap}")
     root.link(page2,
               description="Info",
               reaction="2\N{combining enclosing keycap}")
     root.link(page3,
               description="Invite",
               reaction="3\N{combining enclosing keycap}")
     root.link(page4,
               description="Source",
               reaction="4\N{combining enclosing keycap}")
     root.link(page5,
               description="Uptime",
               reaction="5\N{combining enclosing keycap}")
     h = Help(self.client, root)
     await ctx.send(f"Check your DMs, {ctx.message.auhtor.mention}!")
     await h.display(ctx.message.author)
Example #8
0
 async def math(self, ctx):
     root = Page(
         "These are all the commands in the `math` category. Use the reactions to navigate."
     )
     page1 = Page(
         "`;square [number]/;root [number]`\nSquares/Roots a number")
     page2 = Page("`;multiply [number1] [number2]`\nMultiplies a number")
     page3 = Page("`;factorial [number]`\nFinds the factorial of a number")
     page4 = Page(
         "`;exp [number1] [number2]`\nnumber1 to the power of number2")
     page5 = Page(
         "`;sine [number]/;cosine [number]/;tan [number]`\n sine/cosine/tangent of a number"
     )
     page6 = Page("`;divide [number1] [number2]`\nDivides two numbers")
     page7 = Page(
         "`;add [number1] [number2]/;subtract [number1] [number2]`\nAdds/Subtracts two numbers"
     )
     root.link(page1,
               description="Square/Root",
               reaction="1\N{combining enclosing keycap}")
     root.link(page2,
               description="Multiply",
               reaction="2\N{combining enclosing keycap}")
     root.link(page3,
               description="Factorial",
               reaction="3\N{combining enclosing keycap}")
     root.link(page4,
               description="Exponent",
               reaction="4\N{combining enclosing keycap}")
     root.link(page5,
               description="Sine/Cosine/Tangent",
               reaction="5\N{combining enclosing keycap}")
     root.link(page6,
               description="Divide",
               reaction="6\N{combining enclosing keycap}")
     root.link(page7,
               description="Add/Subtract",
               reaction="7\N{combining enclosing keycap}")
     h = Help(self.client, root)
     await ctx.send(f"Check your DMs, {ctx.message.author.mention}!")
     await h.display(ctx.message.author)
Example #9
0
 async def help(self, ctx):
     root = Page(
         "Welcome to YashBot3001!\nPing Y45HK4R4ND1K4R#9565 on the support server if you have any issues. Use ;help <category> to get all the commands in a single category explained in more detail. Use the reactions to navigate through the menus!"
     )
     page1 = Page(
         "**YashBot3001 Help**\nFun:\n`;8ball [question]`\n`;bully <target>`\n`;kill <target>`\n`;cat`\n`;dice`\n`;dog`\n`;fight <challenger1> <challenger2>`\n`;hamster`\n`;ping`\n`;rps [choice]`\n`;song`\n`;thanos <target>`\n`;coin`\n`;hack <target>`\n`;rate <member>`\n**Anything in [] is required. Anything in <> is optional.**"
     )
     page2 = Page(
         "**YashBot3001 Help**\nMath:\n`;add [number1] [number2]`\n`;cos [number]`\n`;divide [number1] [number2]`\n`;exp [number1] [number2]`\n`;factorial [number]`\n`;multiply [number1] [number2]`\n`;root [number]`\n`;sine [number]`\n`;square [number]`\n`;subtract [number1] [number2]`\n`;tan [number]`\n**Anything in [] is required. Anything in <> is optional.**"
     )
     page3 = Page(
         "**YashBot3001 Help**\nInfo:\n`;help`\n`;info`\n`;invite`\n`;uptime`\n`;source`\n`;guilds`\n`;users`\n**Anything in [] is required. Anything in <> is optional.**"
     )
     page4 = Page(
         "**YashBot3001 Help**\nText Manipulation:\n`;secret <message>`\n`;echo <message>`\n`;embed <message>`\n`;upper [message]`\n`;lower [message]`\n`;reverse [message]`\n`;tts [message]` <------ Works best on computer\n`;ascii [message]` <------ Works best with short messages\n**Anything in [] is required. Anything in <> is optional.**"
     )
     page5 = Page(
         "**YashBot3001 Help**\nImage Manipulation:\n`;kirby [message]`\n`;lisa [message]`\n`;pewds [message]`\n`;gru [message]`\n`;linus [message]`\n`;trump [message]`\n`;elon [message]`\n`;supreme [text]`\n`;deepfry <member>`\n`;sad <member>`\n`;emboss <member>`\n`;invert <member>`\n`;transform [member1] <member2>`\n**Anything in [] is required. Anything in <> is optional.**"
     )
     page6 = Page(
         "**YashBot3001 Help**\nSupport Server Only Commands:\n*These commands only work in the support server. Join it here: https://discord.gg/hG6RDZz*\n`;subscribe`\n`;polls`\n`;unsubscribe`\n**Anything in [] is required. Anything in <> is optional.**"
     )
     page7 = Page(
         "**YashBot3001 Help**\nWeb:\n`;google [query]`\n`;youtube [query]`\n`;wiki [query]`\n**Anything in [] is required. Anything in <> is optional.**"
     )
     page8 = Page(
         "**YashBot3001 Help**\nTags:\n`;make [name] [content]`\n`;show [name]`\n`;edit [name] [content]`\n`;delete [name]`\n`;taglist`\n`;raw [name]`\n`;create`\n**Anything in [] is required. Anything in <> is optional.**"
     )
     page9 = Page(
         "**YashBot3001 Help**\nOther:\n`;bros`\n`;dyt`\n`;enigma`\n`;evrst`\n`;nerdstep`\n**Anything in [] is required. Anything in <> is optional.**"
     )
     root.link(page1, description="Fun", reaction=u"\U0001F3AE")
     root.link(page2, description="Math", reaction=u"\U0001F522")
     root.link(page3, description="Info", reaction=u"\U0001F5DE")
     root.link(page4,
               description="Text Manipulation",
               reaction=u"\U0001F520")
     root.link(page5,
               description="Image Manipulation",
               reaction=u"\U0001F5BC")
     root.link(page6,
               description="Support Server Only",
               reaction=u"\U0001F6E0")
     root.link(page7, description="Web", reaction=u"\U0001F4BB")
     root.link(page8, description="Tags", reaction=u"\U0001F4CC")
     root.link(page9, description="Other", reaction=u"\u2753")
     h = Help(self.client, root)
     await ctx.send(f"Check your DMs, {ctx.message.author.mention}!")
     await h.display(ctx.message.author)