Add [Shared] to config, with 'prefix' and 'owner' opts
'owner' is moved from [IRC] and [XMPP]. 'prefix' controls what prefix commands have.
This commit is contained in:
parent
efe3be890b
commit
c94ef4e3a1
@ -1,9 +1,12 @@
|
|||||||
|
[Shared]
|
||||||
|
prefix = .
|
||||||
|
owner = somebody
|
||||||
|
|
||||||
[IRC]
|
[IRC]
|
||||||
channel = #daemons
|
channel = #daemons
|
||||||
nick = pasarela
|
nick = pasarela
|
||||||
server = irc.freenode.net
|
server = irc.freenode.net
|
||||||
port = 6667
|
port = 6667
|
||||||
owner = somebody
|
|
||||||
|
|
||||||
[XMPP]
|
[XMPP]
|
||||||
jid = becario@daemons.cf
|
jid = becario@daemons.cf
|
||||||
|
38
hybridbot.py
38
hybridbot.py
@ -21,7 +21,6 @@ class IRCBot(SingleServerIRCBot):
|
|||||||
|
|
||||||
self.opts = opts
|
self.opts = opts
|
||||||
self.nick = opts['nick']
|
self.nick = opts['nick']
|
||||||
self.owner = opts['owner']
|
|
||||||
self.inter = inter
|
self.inter = inter
|
||||||
|
|
||||||
def _on_join(self, c, e):
|
def _on_join(self, c, e):
|
||||||
@ -70,7 +69,6 @@ class XMPPBot(sleekxmpp.ClientXMPP):
|
|||||||
self.jabber = sleekxmpp.ClientXMPP(opts['jid'], opts['passwd'])
|
self.jabber = sleekxmpp.ClientXMPP(opts['jid'], opts['passwd'])
|
||||||
self.opts = opts
|
self.opts = opts
|
||||||
self.nick = opts['nick']
|
self.nick = opts['nick']
|
||||||
self.owner = opts['owner']
|
|
||||||
self.inter = inter
|
self.inter = inter
|
||||||
|
|
||||||
def register_handlers(self):
|
def register_handlers(self):
|
||||||
@ -123,7 +121,7 @@ class XMPPBot(sleekxmpp.ClientXMPP):
|
|||||||
|
|
||||||
|
|
||||||
class Intermedia:
|
class Intermedia:
|
||||||
def __init__(self, irc_chan, xmpp_muc):
|
def __init__(self, shared_opts, irc_chan, xmpp_muc):
|
||||||
self.irc_chan = irc_chan
|
self.irc_chan = irc_chan
|
||||||
self.xmpp_muc = xmpp_muc
|
self.xmpp_muc = xmpp_muc
|
||||||
self.ircbot = None
|
self.ircbot = None
|
||||||
@ -131,6 +129,9 @@ class Intermedia:
|
|||||||
self.irc_users = []
|
self.irc_users = []
|
||||||
self.xmpp_users = []
|
self.xmpp_users = []
|
||||||
|
|
||||||
|
self.prefix = shared_opts['prefix']
|
||||||
|
self.owner = shared_opts['owner']
|
||||||
|
|
||||||
def set_bots(self, ircbot, xmppbot):
|
def set_bots(self, ircbot, xmppbot):
|
||||||
self.ircbot = ircbot
|
self.ircbot = ircbot
|
||||||
self.xmppbot = xmppbot
|
self.xmppbot = xmppbot
|
||||||
@ -170,13 +171,8 @@ class Intermedia:
|
|||||||
try:
|
try:
|
||||||
msg = body.replace('\r\n', '\n').replace('\r', '\n').split('\n')
|
msg = body.replace('\r\n', '\n').replace('\r', '\n').split('\n')
|
||||||
|
|
||||||
if from_net == 'irc':
|
|
||||||
owner = self.ircbot.owner
|
|
||||||
elif from_net == 'xmpp':
|
|
||||||
owner = self.xmppbot.owner
|
|
||||||
|
|
||||||
if msg and len(msg) > 0:
|
if msg and len(msg) > 0:
|
||||||
if len(msg) == 1 and msg[0] == '.users':
|
if len(msg) == 1 and msg[0] == self.prefix + 'users':
|
||||||
irc_users = ', '.join(self.get_irc_users())
|
irc_users = ', '.join(self.get_irc_users())
|
||||||
xmpp_users = ', '.join(self.get_xmpp_users())
|
xmpp_users = ', '.join(self.get_xmpp_users())
|
||||||
|
|
||||||
@ -192,9 +188,9 @@ class Intermedia:
|
|||||||
for answer in [irc_users]:
|
for answer in [irc_users]:
|
||||||
self.to_xmpp(answer)
|
self.to_xmpp(answer)
|
||||||
|
|
||||||
elif len(msg) == 1 and msg[0] == '.help':
|
elif len(msg) == 1 and msg[0] == self.prefix + 'help':
|
||||||
answer = 'The only command I have is \'.users\''+ \
|
answer = 'The only command I have is \'' + self.prefix + \
|
||||||
'. Also, my owner is ' + owner + '.'
|
'users\'. Also, my owner is ' + self.owner + '.'
|
||||||
|
|
||||||
if from_net == 'irc':
|
if from_net == 'irc':
|
||||||
self.to_irc(answer)
|
self.to_irc(answer)
|
||||||
@ -202,13 +198,13 @@ class Intermedia:
|
|||||||
self.to_xmpp(answer)
|
self.to_xmpp(answer)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
prefix = '[' + nick + '] '
|
nick_prefix = '[' + nick + '] '
|
||||||
prefix_me = '***' + nick + ' '
|
nick_prefix_me = '***' + nick + ' '
|
||||||
|
|
||||||
if (not re.match('^/me .+$', msg[0])):
|
if (not re.match('^/me .+$', msg[0])):
|
||||||
msg[0] = prefix + msg[0]
|
msg[0] = nick_prefix + msg[0]
|
||||||
else:
|
else:
|
||||||
msg[0] = prefix_me + re.split('^/me ', msg[0])[1]
|
msg[0] = nick_prefix_me + re.split('^/me ', msg[0])[1]
|
||||||
|
|
||||||
if from_net == 'irc':
|
if from_net == 'irc':
|
||||||
self.to_xmpp('\n'.join(msg))
|
self.to_xmpp('\n'.join(msg))
|
||||||
@ -218,7 +214,7 @@ class Intermedia:
|
|||||||
# Separately as with a standard prefix, always.
|
# Separately as with a standard prefix, always.
|
||||||
for m in msg[1:]:
|
for m in msg[1:]:
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
self.to_irc(prefix + m)
|
self.to_irc(nick_prefix + m)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
@ -245,6 +241,7 @@ class Intermedia:
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = SafeConfigParser()
|
parser = SafeConfigParser()
|
||||||
|
shared_opts = {}
|
||||||
xmpp_opts = {}
|
xmpp_opts = {}
|
||||||
irc_opts = {}
|
irc_opts = {}
|
||||||
|
|
||||||
@ -253,20 +250,21 @@ if __name__ == '__main__':
|
|||||||
else:
|
else:
|
||||||
parser.read('config.ini')
|
parser.read('config.ini')
|
||||||
|
|
||||||
|
shared_opts['prefix'] = parser.get('Shared', 'prefix')
|
||||||
|
shared_opts['owner'] = parser.get('Shared', 'owner')
|
||||||
|
|
||||||
irc_opts['chan'] = parser.get('IRC', 'channel')
|
irc_opts['chan'] = parser.get('IRC', 'channel')
|
||||||
irc_opts['nick'] = parser.get('IRC', 'nick')
|
irc_opts['nick'] = parser.get('IRC', 'nick')
|
||||||
irc_opts['server'] = parser.get('IRC', 'server')
|
irc_opts['server'] = parser.get('IRC', 'server')
|
||||||
irc_opts['port'] = int(parser.get('IRC', 'port'))
|
irc_opts['port'] = int(parser.get('IRC', 'port'))
|
||||||
irc_opts['owner'] = parser.get('IRC', 'owner')
|
|
||||||
|
|
||||||
xmpp_opts['jid'] = parser.get('XMPP', 'jid')
|
xmpp_opts['jid'] = parser.get('XMPP', 'jid')
|
||||||
xmpp_opts['passwd'] = parser.get('XMPP', 'password')
|
xmpp_opts['passwd'] = parser.get('XMPP', 'password')
|
||||||
xmpp_opts['muc'] = parser.get('XMPP', 'muc')
|
xmpp_opts['muc'] = parser.get('XMPP', 'muc')
|
||||||
xmpp_opts['nick'] = parser.get('XMPP', 'nick')
|
xmpp_opts['nick'] = parser.get('XMPP', 'nick')
|
||||||
xmpp_opts['owner'] = irc_opts['owner']
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
inter = Intermedia(irc_opts['chan'], xmpp_opts['muc'])
|
inter = Intermedia(shared_opts, irc_opts['chan'], xmpp_opts['muc'])
|
||||||
ircbot = IRCBot(irc_opts, inter)
|
ircbot = IRCBot(irc_opts, inter)
|
||||||
xmppbot = XMPPBot(xmpp_opts, inter)
|
xmppbot = XMPPBot(xmpp_opts, inter)
|
||||||
inter.set_bots(ircbot, xmppbot)
|
inter.set_bots(ircbot, xmppbot)
|
||||||
|
Loading…
Reference in New Issue
Block a user