aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2020-04-20 11:46:17 +0300
committerGravatar ks129 <[email protected]>2020-04-20 11:46:54 +0300
commitbb48c5e6fea14bc8ec42b1188ceb5008fa259463 (patch)
tree074df9db121f4f375ebc6d1bff0c721822f7ee4f
parentAdded `News` cog loading (diff)
Added helper function `News.sync_maillists`
Function sync maillists listing with API, that hold IDs of message that have news. PEPs handling is over RSS, so this will added manually in this function.
-rw-r--r--bot/cogs/news.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/bot/cogs/news.py b/bot/cogs/news.py
index 8eb8689c2..c850b4192 100644
--- a/bot/cogs/news.py
+++ b/bot/cogs/news.py
@@ -2,12 +2,35 @@ from discord.ext.commands import Cog
from bot.bot import Bot
+MAIL_LISTS = [
+ "python-ideas",
+ "python-announce-list",
+ "pypi-announce"
+]
+
class News(Cog):
"""Post new PEPs and Python News to `#python-news`."""
def __init__(self, bot: Bot):
self.bot = bot
+ self.bot.loop.create_task(self.sync_maillists())
+
+ async def sync_maillists(self) -> None:
+ """Sync currently in-use maillists with API."""
+ # Wait until guild is available to avoid running before API is ready
+ await self.bot.wait_until_guild_available()
+
+ response = await self.bot.api_client.get("bot/bot-settings/news")
+ for mail in MAIL_LISTS:
+ if mail not in response["data"]:
+ response["data"][mail] = []
+
+ # Because we are handling PEPs differently, we don't include it to mail lists
+ if "pep" not in response["data"]:
+ response["data"]["pep"] = []
+
+ await self.bot.api_client.put("bot/bot-settings/news", json=response)
def setup(bot: Bot) -> None: