[V3 Help] add tagline support (#1705)

* [V3 Help] add tagline support

* Make the tagline resettable

* Actually, let's allow the user full control over the footer
This commit is contained in:
palmtree5 2018-05-27 19:25:18 -08:00 committed by Kowlin
parent 4f270f3aab
commit 5ec25959df
3 changed files with 33 additions and 5 deletions

View File

@ -51,6 +51,7 @@ class RedBase(BotBase):
embeds=True, embeds=True,
help__page_char_limit=1000, help__page_char_limit=1000,
help__max_pages_in_guild=2, help__max_pages_in_guild=2,
help__tagline="",
) )
self.db.register_guild( self.db.register_guild(

View File

@ -876,6 +876,30 @@ class Core:
await ctx.bot.db.help.max_pages_in_guild.set(pages) await ctx.bot.db.help.max_pages_in_guild.set(pages)
await ctx.send(_("Done. The page limit has been set to {}.").format(pages)) await ctx.send(_("Done. The page limit has been set to {}.").format(pages))
@helpset.command(name="tagline")
async def helpset_tagline(self, ctx: commands.Context, *, tagline: str = None):
"""
Set the tagline to be used.
This setting only applies to embedded help. If no tagline is
specified, the default will be used instead.
"""
if tagline is None:
await ctx.bot.db.help.tagline.set("")
return await ctx.send(_("The tagline has been reset."))
if len(tagline) > 2048:
await ctx.send(
_(
"Your tagline is too long! Please shorten it to be "
"no more than 2048 characters long."
)
)
return
await ctx.bot.db.help.tagline.set(tagline)
await ctx.send(_("The tagline has been set to {}.").format(tagline[:1900]))
@commands.command() @commands.command()
@checks.is_owner() @checks.is_owner()
async def listlocales(self, ctx: commands.Context): async def listlocales(self, ctx: commands.Context):

View File

@ -123,11 +123,7 @@ class Help(formatter.HelpFormatter):
"""Formats command for output. """Formats command for output.
Returns a dict used to build embed""" Returns a dict used to build embed"""
emb = { emb = {"embed": {"title": "", "description": ""}, "footer": {"text": ""}, "fields": []}
"embed": {"title": "", "description": ""},
"footer": {"text": self.get_ending_note()},
"fields": [],
}
if self.is_cog(): if self.is_cog():
translator = getattr(self.command, "__translator__", lambda s: s) translator = getattr(self.command, "__translator__", lambda s: s)
@ -146,6 +142,13 @@ class Help(formatter.HelpFormatter):
# <description> portion # <description> portion
emb["embed"]["description"] = description[:2046] emb["embed"]["description"] = description[:2046]
tagline = await self.context.bot.db.help.tagline()
if tagline:
footer = tagline
else:
footer = self.get_ending_note()
emb["footer"]["text"] = footer
if isinstance(self.command, discord.ext.commands.core.Command): if isinstance(self.command, discord.ext.commands.core.Command):
# <signature portion> # <signature portion>
emb["embed"]["title"] = emb["embed"]["description"] emb["embed"]["title"] = emb["embed"]["description"]