From c1f264b714cf9fba9a7c3bfd57ebabc9dc297be1 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Fri, 31 Mar 2017 13:27:01 -0400 Subject: [PATCH] [hearts2] Add smart quote support; add some missing imports; map links to users and channels --- plugins/hearts2.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/plugins/hearts2.py b/plugins/hearts2.py index fd08f9d..018b5b8 100755 --- a/plugins/hearts2.py +++ b/plugins/hearts2.py @@ -1,7 +1,10 @@ #!/usr/bin/env python3 # Eryn Wells +import json import logging +import os +import re from service import slack HEARTS_FILE = 'hearts.json' @@ -61,7 +64,7 @@ def process_message(data): if score_pair is not None: name = score_pair[0] score = score_pair[1] - LOGGER.info('Adding %s to %s', score, name) + LOG.info('Adding %s to %s', score, name) if score != 0: score = update_item(name, score) outputs.append([data['channel'], '_{}_ now has a score of {}.'.format(name, score)]) @@ -117,16 +120,22 @@ def t_NAME(t): if name: t.value = name elif idee: - # TODO: Look up the user name. - t.value = idee + users = [u for u in USERS if u['id'] == idee] + try: + t.value = users[0]['name'] + except IndexError: + t.value = idee return t elif typ == '#': # It's a channel! if name: t.value = name elif idee: - # TODO: Look up the channel name. - t.value = idee + channels = [c for c in CHANNELS if c['id'] == idee] + try: + t.value = channels[0]['name'] + except IndexError: + t.value = idee return t elif typ == '!': # It's a variable! @@ -136,7 +145,7 @@ def t_NAME(t): return None def t_STR(t): - r'"[^"]*"|' r"'[^']*'" + r'"[^"]*"|' r"'[^']*'|" r'“[^“”]*”|' r'‘[^‘’]*’' LOG.debug('t_STR {}'.format(t.value)) t.value = t.value[1:-1] return t