aboutsummaryrefslogtreecommitdiffstats
path: root/bot/bot.py
diff options
context:
space:
mode:
authorGravatar kwzrd <[email protected]>2020-03-14 19:44:32 +0100
committerGravatar kwzrd <[email protected]>2020-03-14 19:44:32 +0100
commit0cee9682212252a9b27ae2b9a1f7afbf4548e38b (patch)
treeefd7b3b8ab6362dc362a49dbe5b87dffc57f5822 /bot/bot.py
parentDeseasonify: add convenience method to get season by name (diff)
Deseasonify: add `set_banner` method to SeasonalBot
Diffstat (limited to 'bot/bot.py')
-rw-r--r--bot/bot.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/bot/bot.py b/bot/bot.py
index 7da00bf1..2443852c 100644
--- a/bot/bot.py
+++ b/bot/bot.py
@@ -92,6 +92,24 @@ class SeasonalBot(commands.Bot):
log.warning(f"Changing avatar failed: {url}")
return False
+ async def set_banner(self, url: str) -> bool:
+ """Sets the guild's banner based on the provided `url`."""
+ guild = bot.get_guild(Client.guild)
+ old_banner = guild.banner
+
+ image = await self._fetch_image(url)
+ with contextlib.suppress(discord.HTTPException, asyncio.TimeoutError):
+ async with async_timeout.timeout(5):
+ await guild.edit(banner=image)
+
+ new_banner = bot.get_guild(Client.guild).banner
+ if new_banner != old_banner:
+ log.debug(f"Banner changed to {url}")
+ return True
+
+ log.warning(f"Changing banner failed: {url}")
+ return False
+
async def set_icon(self, url: str) -> bool:
"""Sets the guild's icon based on a URL."""
guild = bot.get_guild(Client.guild)