diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2011-04-11 17:19:46 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2011-04-11 17:19:46 +0200 |
commit | ccbcef46c0bf1ffb596ca966e55c474be9b26535 (patch) | |
tree | 6df3e65b813d6cd229bf0d93863c902e00edf9f8 | |
parent | 5dee876e9956203f24da46a52021a16b211d6058 (diff) |
traffic: Fixed county matching.
-rw-r--r-- | modules/traffic.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/modules/traffic.py b/modules/traffic.py index b315660..76e8cc8 100644 --- a/modules/traffic.py +++ b/modules/traffic.py @@ -32,6 +32,7 @@ counties = { } class InvalidCountyException(Exception): pass +class AmbiguousCountyException(Exception): pass class Module: def __init__(self, bot): @@ -49,9 +50,14 @@ class Module: rn = None c = args[0] if c: - c = c.decode('utf8').capitalize() - if not c in counties: + c = c.decode('utf8').lower() + matches = [s for s in counties if c in s.lower()] + if not len(matches): raise InvalidCountyException() + elif len(matches) > 1: + raise AmbiguousCountyException(matches) + else: + c = matches[0] if rn: if rn.lower().startswith('e'): @@ -103,6 +109,8 @@ class Module: self.irc.msg(nick.split('!')[0], line.encode('utf8')) except InvalidCountyException: self.irc.msg(channel if not channel == self.irc.nickname else nick.split('!')[0], 'Invalid county.') + except AmbiguousCountyException as e: + self.irc.msg(channel if not channel == self.irc.nickname else nick.split('!')[0], ('Ambiguous county: %s' % (', '.join(e.message))).encode('utf8')) if __name__ == '__main__': import sys |