aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar scragly <[email protected]>2019-03-30 20:34:00 +1000
committerGravatar GitHub <[email protected]>2019-03-30 20:34:00 +1000
commitc4c03ee851495793d7371af1bc36d2d4c8672aab (patch)
tree1f16534efd66a9c4efc39036fa9f8db6a7463c7a
parentUpdate docstrings for new linting (diff)
parentMerge pull request #163 from python-discord/easter_announce (diff)
Merge branch 'master' into flake8-docstring
-rw-r--r--bot/seasons/easter/__init__.py22
-rw-r--r--bot/seasons/season.py56
2 files changed, 49 insertions, 29 deletions
diff --git a/bot/seasons/easter/__init__.py b/bot/seasons/easter/__init__.py
index c1de5811..4d7e8467 100644
--- a/bot/seasons/easter/__init__.py
+++ b/bot/seasons/easter/__init__.py
@@ -1,18 +1,32 @@
+from bot.constants import Colours
from bot.seasons import SeasonBase
class Easter(SeasonBase):
"""
- Easter is a beautiful time of the year often celebrated after the first Full Moon of the new spring season.
+ Here at Python Discord, we celebrate our version of Easter during the entire month of April.
+ While this celebration takes place, you'll notice a few changes:
- This time is quite beautiful due to the colorful flowers coming out to greet us. So let's greet Spring
- in an Easter celebration of contributions.
+ • The server icon has changed to our Easter icon. Thanks to <@140605665772175361> for the
+ design!
+
+ • [Easter issues now available for SeasonalBot on the repo](https://git.io/fjkvQ).
+
+ • You may see stuff like an Easter themed esoteric challenge, a celebration of Earth Day, or
+ Easter-related micro-events for you to join. Stay tuned!
+
+ If you'd like to contribute, head on over to <#542272993192050698> and we will help you get
+ started. It doesn't matter if you're new to open source or Python, if you'd like to help, we
+ will find you a task and teach you what you need to know.
"""
name = "easter"
bot_name = "BunnyBot"
- greeting = "Happy Easter to us all!"
+ greeting = "Happy Easter!"
# Duration of season
start_date = "01/04"
end_date = "30/04"
+
+ colour = Colours.pink
+ icon = "/logos/logo_seasonal/easter/easter.png"
diff --git a/bot/seasons/season.py b/bot/seasons/season.py
index 9dac51e2..a64f6ca6 100644
--- a/bot/seasons/season.py
+++ b/bot/seasons/season.py
@@ -17,6 +17,8 @@ from bot.decorators import with_role
log = logging.getLogger(__name__)
+ICON_BASE_URL = "https://raw.githubusercontent.com/python-discord/branding/master"
+
def get_seasons() -> List[str]:
"""Returns all the Season objects located in /bot/seasons/."""
@@ -150,12 +152,11 @@ class SeasonBase:
e.g. `/logos/logo_seasonal/valentines/loved_up.png`
"""
- base_url = "https://raw.githubusercontent.com/python-discord/branding/master"
if avatar:
icon = self.bot_icon or self.icon
else:
icon = self.icon
- full_url = base_url + icon
+ full_url = ICON_BASE_URL + icon
log.debug(f"Getting icon from: {full_url}")
async with bot.http_session.get(full_url) as resp:
return await resp.read()
@@ -269,7 +270,21 @@ class SeasonBase:
channel = guild.get_channel(Channels.announcements)
mention = f"<@&{Roles.announcements}>"
- # collect seasonal cogs
+ # build cog info output
+ doc = inspect.getdoc(self)
+ announce = "\n\n".join(l.replace("\n", " ") for l in doc.split("\n\n"))
+
+ # no announcement message found
+ if not doc:
+ return
+
+ embed = discord.Embed(description=f"{announce}\n\n", colour=self.colour or guild.me.colour)
+ embed.set_author(name=self.greeting)
+
+ if self.icon:
+ embed.set_image(url=ICON_BASE_URL+self.icon)
+
+ # find any seasonal commands
cogs = []
for cog in bot.cogs.values():
if "evergreen" in cog.__module__:
@@ -278,30 +293,21 @@ class SeasonBase:
if cog_name != "SeasonManager":
cogs.append(cog_name)
- # no cogs, so no seasonal commands
- if not cogs:
- return
-
- # build cog info output
- doc = inspect.getdoc(self)
- announce_text = doc + "\n\n" if doc else ""
+ if cogs:
+ def cog_name(cog):
+ return type(cog).__name__
- def cog_name(cog):
- return type(cog).__name__
-
- cog_info = []
- for cog in sorted(cogs, key=cog_name):
- doc = inspect.getdoc(bot.get_cog(cog))
- if doc:
- cog_info.append(f"**{cog}**\n*{doc}*")
- else:
- cog_info.append(f"**{cog}**")
+ cog_info = []
+ for cog in sorted(cogs, key=cog_name):
+ doc = inspect.getdoc(bot.get_cog(cog))
+ if doc:
+ cog_info.append(f"**{cog}**\n*{doc}*")
+ else:
+ cog_info.append(f"**{cog}**")
- embed = discord.Embed(description=announce_text, colour=self.colour or guild.me.colour)
- embed.set_author(name=self.greeting)
- cogs_text = "\n".join(cog_info)
- embed.add_field(name="New Command Categories", value=cogs_text)
- embed.set_footer(text="To see the new commands, use .help Category")
+ cogs_text = "\n".join(cog_info)
+ embed.add_field(name="New Command Categories", value=cogs_text)
+ embed.set_footer(text="To see the new commands, use .help Category")
await channel.send(mention, embed=embed)