--- a/pvl/irk.py Fri Jan 11 17:23:49 2013 +0200
+++ b/pvl/irk.py Fri Jan 11 17:32:35 2013 +0200
@@ -19,6 +19,9 @@
irker.add_option('--irker', metavar='URL', default=connect,
help="Irker daemon URL")
+ irker.add_option('--irker-notice', action='store_true',
+ help="Use irker NOTICE")
+
return irker
def apply (options) :
@@ -27,7 +30,7 @@
"""
# None -> stdout
- return Irker(options.irker)
+ return Irker(options.irker, options.irker_notice)
def connect (host=None, port=None, family=socket.AF_UNSPEC, socktype=socket.SOCK_STREAM) :
"""
@@ -132,10 +135,12 @@
A channel on an Irk connection.
"""
- def __init__ (self, irker, target) :
+ def __init__ (self, irker, target, notice=False) :
self.irker = irker
self.target = target
+ self._notice = notice
+
def join (self) :
log.info("%s", self)
self.irker.send(to=str(self), privmsg='')
@@ -145,7 +150,17 @@
log.info("%s: %s", self, arg)
self.irker.send(to=str(self), privmsg=arg)
- __call__ = privmsg
+ def notice (self, *args) :
+ for arg in args :
+ log.info("%s: %s", self, arg)
+ self.irker.send(to=str(self), notice=arg)
+
+ def __call__ (self, *args) :
+ # default msg policy
+ if self._notice :
+ return self.notice(*args)
+ else :
+ return self.privmsg(*args)
def __str__ (self) :
return self.target
@@ -155,13 +170,14 @@
Reconnecting irker.
"""
- def __init__ (self, url=None) :
+ def __init__ (self, url=None, notice=False) :
if url :
self.url = urlparse.urlparse(url)
else :
self.url = None
self.targets = {}
+ self.notice = notice
self.connect()
@@ -191,7 +207,7 @@
"""
if target not in self.targets :
- self.targets[target] = IrkerTarget(self, target)
+ self.targets[target] = IrkerTarget(self, target, notice=self.notice)
self.targets[target].join()
return self.targets[target]