From fba6e079c1ddc63c210db506ea2c8ab522ee53af Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 26 Jun 2016 00:41:57 +0200 Subject: [PATCH] Finalize nick-templating; still issues with other places using nicks, such as channels. --- evennia/commands/default/tests.py | 6 +++--- evennia/comms/managers.py | 1 + evennia/server/inputfuncs.py | 2 +- evennia/typeclasses/attributes.py | 9 ++++----- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/evennia/commands/default/tests.py b/evennia/commands/default/tests.py index bca478ba5e..2ff5086b0b 100644 --- a/evennia/commands/default/tests.py +++ b/evennia/commands/default/tests.py @@ -100,9 +100,9 @@ class TestGeneral(CommandTest): self.call(general.CmdPose(), "looks around", "Char looks around") def test_nick(self): - self.call(general.CmdNick(), "testalias = testaliasedstring1", "Nick set:") - self.call(general.CmdNick(), "/player testalias = testaliasedstring2", "Nick set:") - self.call(general.CmdNick(), "/object testalias = testaliasedstring3", "Nick set:") + self.call(general.CmdNick(), "testalias = testaliasedstring1", "Nick 'testalias' mapped to 'testaliasedstring1'.") + self.call(general.CmdNick(), "/player testalias = testaliasedstring2", "Nick 'testalias' mapped to 'testaliasedstring2'.") + self.call(general.CmdNick(), "/object testalias = testaliasedstring3", "Nick 'testalias' mapped to 'testaliasedstring3'.") self.assertEqual(u"testaliasedstring1", self.char1.nicks.get("testalias")) self.assertEqual(u"testaliasedstring2", self.char1.nicks.get("testalias", category="player")) self.assertEqual(u"testaliasedstring3", self.char1.nicks.get("testalias", category="object")) diff --git a/evennia/comms/managers.py b/evennia/comms/managers.py index df546a1a26..96ae61e28b 100644 --- a/evennia/comms/managers.py +++ b/evennia/comms/managers.py @@ -393,6 +393,7 @@ class ChannelDBManager(TypedObjectManager): case sensitive) match. """ + print("channel_search", ostring) channels = [] if not ostring: return channels try: diff --git a/evennia/server/inputfuncs.py b/evennia/server/inputfuncs.py index 086890562c..0e9d2ad576 100644 --- a/evennia/server/inputfuncs.py +++ b/evennia/server/inputfuncs.py @@ -63,7 +63,7 @@ def text(session, *args, **kwargs): return # this is treated as a command input # handle the 'idle' command - if text.strip() in _IDLE_COMMAND: + if text.strip() == _IDLE_COMMAND: session.update_session_counters(idle=True) return if session.player: diff --git a/evennia/typeclasses/attributes.py b/evennia/typeclasses/attributes.py index 6ac2a368c8..dd2fe67197 100644 --- a/evennia/typeclasses/attributes.py +++ b/evennia/typeclasses/attributes.py @@ -596,6 +596,8 @@ def initialize_nick_templates(in_template, out_template): # create the regex for in_template regex_string = fnmatch.translate(in_template) + # we must account for a possible line break coming over the wire + regex_string = regex_string[:-7] + r"(?:[\n\r]*?)\Z(?ms)" # validate the templates regex_args = [match.group(2) for match in _RE_NICK_ARG.finditer(regex_string)] @@ -733,16 +735,13 @@ class NickHandler(AttributeHandler): for nick in make_iter(self.obj.player.nicks.get(category=category, return_obj=True)) if nick and nick.key}) for key, nick in nicks.iteritems(): - print "iterting over nicks:", key nick_regex, template, _, _ = nick.value regex = self._regex_cache.get(nick_regex) if not regex: - regex = re.compile(nick_regex, re.I + re.DOTALL) + regex = re.compile(nick_regex, re.I + re.DOTALL + re.U) self._regex_cache[nick_regex] = regex - print "before parse_nick_template:", nick.value - is_match, raw_string = parse_nick_template(raw_string, regex, template) - print "is_match:", is_match, raw_string + is_match, raw_string = parse_nick_template(raw_string.strip(), regex, template) if is_match: break return raw_string