mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-19 08:59:27 +01:00
Made bot relay its own non-relay messages and factored out formatting of PRIVMSGs.
This commit is contained in:
parent
c268078697
commit
d5c7789cbb
@ -42,6 +42,8 @@ Commands include:
|
|||||||
|
|
||||||
from baseplugin import *
|
from baseplugin import *
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
import ircdb
|
import ircdb
|
||||||
import debug
|
import debug
|
||||||
import irclib
|
import irclib
|
||||||
@ -125,27 +127,29 @@ class Relay(callbacks.Privmsg):
|
|||||||
else:
|
else:
|
||||||
irc.reply(msg, conf.replyNoCapability % 'owner')
|
irc.reply(msg, conf.replyNoCapability % 'owner')
|
||||||
|
|
||||||
|
def _formatPrivmsg(self, nick, abbreviation, msg):
|
||||||
|
if ircmsgs.isAction(msg):
|
||||||
|
return '* %s/%s %s' % (nick, abbreviation, ircmsgs.unAction(msg))
|
||||||
|
else:
|
||||||
|
return '<%s@%s> %s' % (nick, abbreviation, msg.args[1])
|
||||||
|
|
||||||
def doPrivmsg(self, irc, msg):
|
def doPrivmsg(self, irc, msg):
|
||||||
callbacks.Privmsg.doPrivmsg(self, irc, msg)
|
callbacks.Privmsg.doPrivmsg(self, irc, msg)
|
||||||
if not isinstance(irc, irclib.Irc):
|
if not isinstance(irc, irclib.Irc):
|
||||||
irc = irc.getRealIrc()
|
irc = irc.getRealIrc()
|
||||||
if self.started and ircutils.isChannel(msg.args[0]):
|
if self.started and ircutils.isChannel(msg.args[0]):
|
||||||
channel = msg.args[0]
|
channel = msg.args[0]
|
||||||
debug.printf('self.abbreviations = %s' % self.abbreviations)
|
#debug.printf('self.abbreviations = %s' % self.abbreviations)
|
||||||
debug.printf('self.ircs = %s' % self.ircs)
|
#debug.printf('self.ircs = %s' % self.ircs)
|
||||||
debug.printf('irc = %s' % irc)
|
#debug.printf('irc = %s' % irc)
|
||||||
abbreviation = self.abbreviations[irc]
|
abbreviation = self.abbreviations[irc]
|
||||||
if ircmsgs.isAction(msg):
|
s = self._formatPrivmsg(msg.nick, abbreviation, msg)
|
||||||
_args1 = '* %s %s' % (msg.nick, ircmsgs.unAction(msg))
|
|
||||||
else:
|
|
||||||
_args1 = msg.args[1]
|
|
||||||
s = '<%s@%s> %s' % (msg.nick, abbreviation, _args1)
|
|
||||||
for otherIrc in self.ircs:
|
for otherIrc in self.ircs:
|
||||||
debug.printf('otherIrc = %s' % otherIrc)
|
#debug.printf('otherIrc = %s' % otherIrc)
|
||||||
if otherIrc != irc:
|
if otherIrc != irc:
|
||||||
debug.printf('otherIrc != irc')
|
#debug.printf('otherIrc != irc')
|
||||||
debug.printf('id(irc) = %s, id(otherIrc) = %s' % \
|
#debug.printf('id(irc) = %s, id(otherIrc) = %s' % \
|
||||||
(id(irc), id(otherIrc)))
|
# (id(irc), id(otherIrc)))
|
||||||
if channel in otherIrc.state.channels:
|
if channel in otherIrc.state.channels:
|
||||||
otherIrc.queueMsg(ircmsgs.privmsg(channel, s))
|
otherIrc.queueMsg(ircmsgs.privmsg(channel, s))
|
||||||
|
|
||||||
@ -172,6 +176,19 @@ class Relay(callbacks.Privmsg):
|
|||||||
if channel in otherIrc.state.channels:
|
if channel in otherIrc.state.channels:
|
||||||
otherIrc.queueMsg(ircmsgs.privmsg(channel, s))
|
otherIrc.queueMsg(ircmsgs.privmsg(channel, s))
|
||||||
|
|
||||||
|
def outFilter(self, irc, msg):
|
||||||
|
if msg.command == 'PRIVMSG':
|
||||||
|
abbreviations = self.abbreviations.values()
|
||||||
|
r = re.compile(r'<([^@]+@(?:%s)>' % '|'.join(abbreviations))
|
||||||
|
if r.match(msg.args[1]):
|
||||||
|
channel = msg.args[0]
|
||||||
|
abbreviation = self.abbreviations[irc]
|
||||||
|
s = self._formatPrivmsg(irc.nick, abbreviation, msg)
|
||||||
|
for otherIrc in self.ircs:
|
||||||
|
if otherIrc != irc:
|
||||||
|
if channel in otherIrc.state.channels:
|
||||||
|
msg = ircmsgs.privmsg(channel, s)
|
||||||
|
|
||||||
Class = Relay
|
Class = Relay
|
||||||
|
|
||||||
# vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78:
|
# vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78:
|
||||||
|
Loading…
Reference in New Issue
Block a user