else:
server = client.get_server(announcement['server_id'])
member = server.get_member(announcement['member_id'])
- text = '**announcement {} by {}'.format(id, member.name)
+ text = '**{}announcement {} by {}'.format('private' if announcement['channel_id'] == 'private' else '', id, member.name)
now = int(time.time())
if announcement['last_spoke']:
offset = announcement['last_spoke']
channel = None
channel_id = str(announcement['channel_id'])
- if channel_id == 'private':
+ private = channel_id == 'private'
+ if private:
for server in client.servers:
try:
member = server.get_member(announcement['member_id'])
else:
text = '<@{}>\n{}'.format(mention, text)
- cutoff = datetime.datetime.utcnow() - datetime.timedelta(0, announcement['interval'])
- logs = yield from client.logs_from(channel, after = cutoff)
- digest = announcement['digest']
- for message in logs:
- raw = re.sub(r'^(<?@\S+\s)+', '', message.content).strip()
- if hashlib.sha224(raw.encode('utf-8')).hexdigest() == digest:
- log.debug('Saw previously posted announcement {} with digest {}'.format(announcement['id'], digest))
- return
+ # Always post private messages. Try not to spam public announcements.
+ if not private:
+ cutoff = datetime.datetime.utcnow() - datetime.timedelta(0, announcement['interval'])
+ logs = yield from client.logs_from(channel, after = cutoff)
+ digest = announcement['digest']
+ for message in logs:
+ raw = re.sub(r'^(<?@\S+\s)+', '', message.content).strip()
+ if hashlib.sha224(raw.encode('utf-8')).hexdigest() == digest:
+ log.debug('Saw previously posted announcement {} with digest {}'.format(announcement['id'], digest))
+ return
if announcement['voice_id']:
filename = announcement['sound']