From 94425988fff8923d6adc3354b85b4a2c55d0225e Mon Sep 17 00:00:00 2001 From: CMDR furrycat Date: Tue, 20 Sep 2016 13:34:10 +0100 Subject: [PATCH] Ensure RSS feed permissions are correct. --- bot.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/bot.py b/bot.py index 9f0ee75..5fee881 100755 --- a/bot.py +++ b/bot.py @@ -173,6 +173,32 @@ def set_unassigned(member): yield from set_role(member, 'Unassigned') @asyncio.coroutine +def set_rss_permissions(feed): + channel = client.get_channel(str(feed['channel'])) + role = None + for server_role in channel.server.get_member(client.user.id).roles: + if server_role.name == 'Robocat': + role = server_role + break + if role is not None: + # Permissions for bot. + overwrite = discord.PermissionOverwrite() + overwrite.read_messages = True + overwrite.read_message_history = True + overwrite.send_messages = True + overwrite.send_tts_messages = True + overwrite.manage_messages = True + overwrite.attach_files = True + yield from client.edit_channel_permissions(channel, role, overwrite) + # Permissions for @everyone. + overwrite = discord.PermissionOverwrite() + overwrite.read_messages = True + overwrite.read_message_history = True + overwrite.send_messages = False + overwrite.send_tts_messages = False + yield from client.edit_channel_permissions(channel, channel.server.default_role, overwrite) + +@asyncio.coroutine def do_rss(feed): date = feed['date'] if 'date' in feed else True summary = feed['summary'] if 'summary' in feed else False @@ -212,6 +238,7 @@ def do_rss(feed): def do_feeds(feeds): while True: for feed in feeds: + yield from set_rss_permissions(feed) yield from do_rss(feed) yield from asyncio.sleep(rsstime) -- 2.7.4