mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-02 17:29:22 +01:00
Merge remote-tracking branch 'progval/testing' into mkaysi
This commit is contained in:
commit
ba4e4a6c47
@ -490,8 +490,8 @@ class Misc(callbacks.Plugin):
|
||||
irc.action = False
|
||||
text = '* %s %s' % (irc.nick, text)
|
||||
s = _('%s wants me to tell you: %s') % (msg.nick, text)
|
||||
irc.reply(s, to=target, private=True)
|
||||
irc.replySuccess()
|
||||
irc.reply(s, to=target, private=True)
|
||||
tell = wrap(tell, ['something', 'text'])
|
||||
|
||||
@internationalizeDocstring
|
||||
|
@ -1 +1 @@
|
||||
Insert a description of your plugin here, with any notes, etc. about using it.
|
||||
This plugin allows you to setup a relay between networks.
|
@ -1 +1 @@
|
||||
Insert a description of your plugin here, with any notes, etc. about using it.
|
||||
This plugin allows you to use different reply commands.
|
@ -1 +1 @@
|
||||
Insert a description of your plugin here, with any notes, etc. about using it.
|
||||
This plugin features commands to shorten URLs through different services.
|
@ -1 +1 @@
|
||||
Insert a description of your plugin here, with any notes, etc. about using it.
|
||||
This plugin allows you to view different bot statistics, for example, uptime.
|
@ -1 +1 @@
|
||||
Insert a description of your plugin here, with any notes, etc. about using it.
|
||||
This plugin allows you to use different time functions.
|
@ -1 +1 @@
|
||||
Insert a description of your plugin here, with any notes, etc. about using it.
|
||||
This plugin records how many URLs have been mentioned in the channel and what the last URL was.
|
10
src/conf.py
10
src/conf.py
@ -258,7 +258,7 @@ class SpaceSeparatedSetOfChannels(registry.SpaceSeparatedListOf):
|
||||
else:
|
||||
return ircmsgs.join(channel)
|
||||
|
||||
def registerNetwork(name, password='', ssl=False):
|
||||
def registerNetwork(name, password='', ssl=False, sasl_username=''):
|
||||
network = registerGroup(supybot.networks, name)
|
||||
registerGlobalValue(network, 'password', registry.String(password,
|
||||
_("""Determines what password will be used on %s. Yes, we know that
|
||||
@ -277,6 +277,14 @@ def registerNetwork(name, password='', ssl=False):
|
||||
registerChannelValue(network.channels, 'key', registry.String('',
|
||||
_("""Determines what key (if any) will be used to join the
|
||||
channel.""")))
|
||||
sasl = registerGroup(network, 'sasl')
|
||||
registerGlobalValue(sasl, 'username', registry.String(sasl_username,
|
||||
_("""Determines what SASL username will be used on %s. This should
|
||||
be the bot's account name. Due to the way SASL works, you can't use
|
||||
any grouped nick.""") % name, private=False))
|
||||
registerGlobalValue(sasl, 'password', registry.String(password,
|
||||
_("""Determines what SASL password will be used on %s.""") \
|
||||
% name, private=True))
|
||||
return network
|
||||
|
||||
# Let's fill our networks.
|
||||
|
@ -31,6 +31,7 @@ import re
|
||||
import copy
|
||||
import time
|
||||
import random
|
||||
import base64
|
||||
|
||||
import supybot.log as log
|
||||
import supybot.conf as conf
|
||||
@ -862,6 +863,8 @@ class Irc(IrcCommandDispatcher):
|
||||
self.ident = conf.supybot.ident()
|
||||
self.alternateNicks = conf.supybot.nick.alternates()[:]
|
||||
self.password = conf.supybot.networks.get(self.network).password()
|
||||
self.sasl_username = conf.supybot.networks.get(self.network).sasl.username()
|
||||
self.sasl_password = conf.supybot.networks.get(self.network).sasl.password()
|
||||
self.prefix = '%s!%s@%s' % (self.nick, self.ident, 'unset.domain')
|
||||
# The rest.
|
||||
self.lastTake = 0
|
||||
@ -875,6 +878,18 @@ class Irc(IrcCommandDispatcher):
|
||||
self.driver.die()
|
||||
self._reallyDie()
|
||||
else:
|
||||
if self.sasl_password:
|
||||
if not self.sasl_username:
|
||||
log.error('SASL username is not set, unable to identify.')
|
||||
else:
|
||||
auth_string = base64.b64encode('%s\x00%s\x00%s' % (self.sasl_username,
|
||||
self.sasl_username, self.sasl_password))
|
||||
log.debug('Sending CAP REQ command, requesting capability \'sasl\'.')
|
||||
self.queueMsg(ircmsgs.IrcMsg(command="CAP", args=('REQ', 'sasl')))
|
||||
log.debug('Sending AUTHENTICATE command, using mechanism PLAIN.')
|
||||
self.queueMsg(ircmsgs.IrcMsg(command="AUTHENTICATE", args=('PLAIN',)))
|
||||
log.info('Sending AUTHENTICATE command, not logging the password.')
|
||||
self.queueMsg(ircmsgs.IrcMsg(command="AUTHENTICATE", args=(auth_string,)))
|
||||
if self.password:
|
||||
log.info('Sending PASS command, not logging the password.')
|
||||
self.queueMsg(ircmsgs.password(self.password))
|
||||
@ -884,6 +899,17 @@ class Irc(IrcCommandDispatcher):
|
||||
self.ident, self.user)
|
||||
self.queueMsg(ircmsgs.user(self.ident, self.user))
|
||||
|
||||
def do903(self, msg):
|
||||
log.info('%s: SASL authentication successful' % self.network)
|
||||
log.debug('Sending CAP END command.')
|
||||
self.queueMsg(ircmsgs.IrcMsg(command="CAP", args=('END',)))
|
||||
|
||||
def do904(self, msg):
|
||||
log.warning('%s: SASL authentication failed' % self.network)
|
||||
log.debug('Aborting authentication.')
|
||||
log.debug('Sending CAP END command.')
|
||||
self.queueMsg(ircmsgs.IrcMsg(command="CAP", args=('END',)))
|
||||
|
||||
def _getNextNick(self):
|
||||
if self.alternateNicks:
|
||||
nick = self.alternateNicks.pop(0)
|
||||
|
@ -1,3 +1,3 @@
|
||||
"""stick the various versioning attributes in here, so we only have to change
|
||||
them once."""
|
||||
version = '0.83.4.1+limnoria (2011-09-11T20:13:20+0200)'
|
||||
version = '0.83.4.1+limnoria (2011-09-18T10:31:09+0200)'
|
||||
|
Loading…
Reference in New Issue
Block a user