diff options
| author | 2020-04-20 11:46:17 +0300 | |
|---|---|---|
| committer | 2020-04-20 11:46:54 +0300 | |
| commit | bb48c5e6fea14bc8ec42b1188ceb5008fa259463 (patch) | |
| tree | 074df9db121f4f375ebc6d1bff0c721822f7ee4f | |
| parent | Added `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.
Diffstat (limited to '')
| -rw-r--r-- | bot/cogs/news.py | 23 |
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: |