From 3f6d347e2bd63fe05c8a13ae023fdf9ad7b31ae7 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Wed, 10 Dec 2003 18:49:45 +0000 Subject: [PATCH] Added isCtcp. --- src/ircutils.py | 6 ++++++ test/test_ircutils.py | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ircutils.py b/src/ircutils.py index 01b90a7f8..496479f54 100644 --- a/src/ircutils.py +++ b/src/ircutils.py @@ -104,6 +104,12 @@ def nickEqual(nick1, nick2): _nickchars = r'_[]\`^{}|-' nickRe = re.compile(r'^[A-Za-z%s][0-9A-Za-z%s]*$' % (re.escape(_nickchars), re.escape(_nickchars))) +def isCtcp(msg): + """Returns whether or not msg is a CTCP message.""" + return msg.command == 'PRIVMSG' and \ + msg.args[1].startswith('\x01') and \ + msg.args[1].endswith('\x01') + def isNick(s): """Returns True if s is a valid IRC nick.""" if re.match(nickRe, s): diff --git a/test/test_ircutils.py b/test/test_ircutils.py index 913209ee2..ac6f8cb2d 100644 --- a/test/test_ircutils.py +++ b/test/test_ircutils.py @@ -55,7 +55,6 @@ class FunctionsTestCase(unittest.TestCase): 'abr-ubr1.sbo-abr.ma.cable.rcn.com' self.failUnless(ircutils.hostmaskPatternEqual(s, s)) - def testIsUserHostmask(self): self.failUnless(ircutils.isUserHostmask(self.hostmask)) self.failUnless(ircutils.isUserHostmask('a!b@c')) @@ -85,6 +84,10 @@ class FunctionsTestCase(unittest.TestCase): self.failIf(ircutils.isChannel('foo')) self.failIf(ircutils.isChannel('')) + def testIsCtcp(self): + self.failUnless(ircutils.isCtcp(ircmsgs.privmsg('foo', + '\x01VERSION\x01'))) + def testBold(self): s = ircutils.bold('foo') self.assertEqual(s[0], '\x02')