mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-02-19 23:20:57 +01:00
Better stupid nick resolution scheme.
This commit is contained in:
parent
c925b483c7
commit
3cf02c85a6
@ -36,6 +36,7 @@ import supybot.fix as fix
|
|||||||
import copy
|
import copy
|
||||||
import sets
|
import sets
|
||||||
import time
|
import time
|
||||||
|
import random
|
||||||
import operator
|
import operator
|
||||||
from itertools import imap, chain, cycle
|
from itertools import imap, chain, cycle
|
||||||
|
|
||||||
@ -500,24 +501,14 @@ class Irc(IrcCommandDispatcher):
|
|||||||
return self.alternateNicks.pop(0)
|
return self.alternateNicks.pop(0)
|
||||||
else:
|
else:
|
||||||
nick = conf.supybot.nick()
|
nick = conf.supybot.nick()
|
||||||
for c in '`_^':
|
ret = nick
|
||||||
if nick.endswith(c):
|
L = list(nick)
|
||||||
if len(nick) >= 9: # The max length on many servers.
|
while len(L) <= 3:
|
||||||
nick = nick.rstrip(c)
|
L.append('`')
|
||||||
continue
|
while ret == nick:
|
||||||
else:
|
L[random.randrange(len(L))] = random.choice('0123456789')
|
||||||
return nick + c
|
ret = ''.join(L)
|
||||||
else:
|
return ret
|
||||||
return nick + c
|
|
||||||
for c in '`_^':
|
|
||||||
if nick.startswith(c):
|
|
||||||
if len(nick) >= 9:
|
|
||||||
nick = nick.lstrip(c)
|
|
||||||
continue
|
|
||||||
else:
|
|
||||||
return c + nick
|
|
||||||
else:
|
|
||||||
return c + nick
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '<irclib.Irc object for %s>' % self.network
|
return '<irclib.Irc object for %s>' % self.network
|
||||||
@ -620,6 +611,7 @@ class Irc(IrcCommandDispatcher):
|
|||||||
def do433(self, msg):
|
def do433(self, msg):
|
||||||
"""Handles 'nickname already in use' messages."""
|
"""Handles 'nickname already in use' messages."""
|
||||||
newNick = self._getNextNick()
|
newNick = self._getNextNick()
|
||||||
|
assert newNick != self.nick, 'self._getNextNick() returned same nick.'
|
||||||
log.info('Got 433: %s is in use. Trying %s.', self.nick, newNick)
|
log.info('Got 433: %s is in use. Trying %s.', self.nick, newNick)
|
||||||
self.sendMsg(ircmsgs.nick(newNick))
|
self.sendMsg(ircmsgs.nick(newNick))
|
||||||
do432 = do433 # 432: Erroneous nickname.
|
do432 = do433 # 432: Erroneous nickname.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user