mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-26 12:49:24 +01:00
Make ircutils.standardSubstitute accept None as irc and msg. (Preliminary for GH-1041.)
This commit is contained in:
parent
29de1e137d
commit
cb6669015e
@ -667,40 +667,17 @@ for (k, v) in mircColors.items():
|
|||||||
|
|
||||||
def standardSubstitute(irc, msg, text, env=None):
|
def standardSubstitute(irc, msg, text, env=None):
|
||||||
"""Do the standard set of substitutions on text, and return it"""
|
"""Do the standard set of substitutions on text, and return it"""
|
||||||
if isChannel(msg.args[0]):
|
|
||||||
channel = msg.args[0]
|
|
||||||
else:
|
|
||||||
channel = 'somewhere'
|
|
||||||
def randInt():
|
def randInt():
|
||||||
return str(random.randint(-1000, 1000))
|
return str(random.randint(-1000, 1000))
|
||||||
def randDate():
|
def randDate():
|
||||||
t = pow(2,30)*random.random()+time.time()/4.0
|
t = pow(2,30)*random.random()+time.time()/4.0
|
||||||
return time.ctime(t)
|
return time.ctime(t)
|
||||||
def randNick():
|
|
||||||
if channel != 'somewhere':
|
|
||||||
L = list(irc.state.channels[channel].users)
|
|
||||||
if len(L) > 1:
|
|
||||||
n = msg.nick
|
|
||||||
while n == msg.nick:
|
|
||||||
n = utils.iter.choice(L)
|
|
||||||
return n
|
|
||||||
else:
|
|
||||||
return msg.nick
|
|
||||||
else:
|
|
||||||
return 'someone'
|
|
||||||
ctime = time.strftime("%a %b %d %H:%M:%S %Y")
|
ctime = time.strftime("%a %b %d %H:%M:%S %Y")
|
||||||
localtime = time.localtime()
|
localtime = time.localtime()
|
||||||
gmtime = time.strftime("%a %b %d %H:%M:%S %Y", time.gmtime())
|
gmtime = time.strftime("%a %b %d %H:%M:%S %Y", time.gmtime())
|
||||||
vars = CallableValueIrcDict({
|
vars = CallableValueIrcDict({
|
||||||
'who': msg.nick,
|
|
||||||
'nick': msg.nick,
|
|
||||||
'user': msg.user,
|
|
||||||
'host': msg.host,
|
|
||||||
'channel': channel,
|
|
||||||
'botnick': irc.nick,
|
|
||||||
'now': ctime, 'ctime': ctime,
|
'now': ctime, 'ctime': ctime,
|
||||||
'utc': gmtime, 'gmt': gmtime,
|
'utc': gmtime, 'gmt': gmtime,
|
||||||
'randnick': randNick, 'randomnick': randNick,
|
|
||||||
'randdate': randDate, 'randomdate': randDate,
|
'randdate': randDate, 'randomdate': randDate,
|
||||||
'rand': randInt, 'randint': randInt, 'randomint': randInt,
|
'rand': randInt, 'randint': randInt, 'randomint': randInt,
|
||||||
'today': time.strftime('%d %b %Y', localtime),
|
'today': time.strftime('%d %b %Y', localtime),
|
||||||
@ -714,8 +691,48 @@ def standardSubstitute(irc, msg, text, env=None):
|
|||||||
's': localtime[5], 'sec': localtime[5], 'second': localtime[5],
|
's': localtime[5], 'sec': localtime[5], 'second': localtime[5],
|
||||||
'tz': time.strftime('%Z', localtime),
|
'tz': time.strftime('%Z', localtime),
|
||||||
})
|
})
|
||||||
if msg.reply_env:
|
if irc:
|
||||||
vars.update(msg.reply_env)
|
vars.update({
|
||||||
|
'botnick': irc.nick,
|
||||||
|
})
|
||||||
|
|
||||||
|
if msg:
|
||||||
|
vars.update({
|
||||||
|
'who': msg.nick,
|
||||||
|
'nick': msg.nick,
|
||||||
|
'user': msg.user,
|
||||||
|
'host': msg.host,
|
||||||
|
})
|
||||||
|
if msg.reply_env:
|
||||||
|
vars.update(msg.reply_env)
|
||||||
|
|
||||||
|
if irc and msg:
|
||||||
|
if isChannel(msg.args[0]):
|
||||||
|
channel = msg.args[0]
|
||||||
|
else:
|
||||||
|
channel = 'somewhere'
|
||||||
|
def randNick():
|
||||||
|
if channel != 'somewhere':
|
||||||
|
L = list(irc.state.channels[channel].users)
|
||||||
|
if len(L) > 1:
|
||||||
|
n = msg.nick
|
||||||
|
while n == msg.nick:
|
||||||
|
n = utils.iter.choice(L)
|
||||||
|
return n
|
||||||
|
else:
|
||||||
|
return msg.nick
|
||||||
|
else:
|
||||||
|
return 'someone'
|
||||||
|
vars.update({
|
||||||
|
'randnick': randNick, 'randomnick': randNick,
|
||||||
|
'channel': channel,
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
vars.update({
|
||||||
|
'channel': 'somewhere',
|
||||||
|
'randnick': 'someone', 'randomnick': 'someone',
|
||||||
|
})
|
||||||
|
|
||||||
if env is not None:
|
if env is not None:
|
||||||
vars.update(env)
|
vars.update(env)
|
||||||
t = string.Template(text)
|
t = string.Template(text)
|
||||||
|
@ -216,6 +216,9 @@ class FunctionsTestCase(SupyTestCase):
|
|||||||
vars = {'foo': 'bar', 'b': 'c', 'i': 100,
|
vars = {'foo': 'bar', 'b': 'c', 'i': 100,
|
||||||
'f': lambda: 'called'}
|
'f': lambda: 'called'}
|
||||||
self.assertEqual(f(irc, msg, '$foo', vars), 'bar')
|
self.assertEqual(f(irc, msg, '$foo', vars), 'bar')
|
||||||
|
self.assertEqual(f(irc, None, '$foo', vars), 'bar')
|
||||||
|
self.assertEqual(f(None, None, '$foo', vars), 'bar')
|
||||||
|
self.assertEqual(f(None, msg, '$foo', vars), 'bar')
|
||||||
self.assertEqual(f(irc, msg, '${foo}', vars), 'bar')
|
self.assertEqual(f(irc, msg, '${foo}', vars), 'bar')
|
||||||
self.assertEqual(f(irc, msg, '$b', vars), 'c')
|
self.assertEqual(f(irc, msg, '$b', vars), 'c')
|
||||||
self.assertEqual(f(irc, msg, '${b}', vars), 'c')
|
self.assertEqual(f(irc, msg, '${b}', vars), 'c')
|
||||||
|
Loading…
Reference in New Issue
Block a user