mirror of
https://github.com/jlu5/PyLink.git
synced 2025-01-11 20:52:42 +01:00
relay_cb: implement outgoing PMs from clientbot networks via an 'rpm' command
Closes #292.
This commit is contained in:
parent
7817898c14
commit
7eb5e59842
@ -176,3 +176,41 @@ utils.add_hook(cb_relay_core, 'CLIENTBOT_QUIT')
|
|||||||
utils.add_hook(cb_relay_core, 'CLIENTBOT_NICK')
|
utils.add_hook(cb_relay_core, 'CLIENTBOT_NICK')
|
||||||
utils.add_hook(cb_relay_core, 'CLIENTBOT_SJOIN')
|
utils.add_hook(cb_relay_core, 'CLIENTBOT_SJOIN')
|
||||||
utils.add_hook(cb_relay_core, 'CLIENTBOT_SQUIT')
|
utils.add_hook(cb_relay_core, 'CLIENTBOT_SQUIT')
|
||||||
|
|
||||||
|
@utils.add_cmd
|
||||||
|
def rpm(irc, source, args):
|
||||||
|
"""<target> <text>
|
||||||
|
|
||||||
|
Sends PMs to users over the relay, if Clientbot PMs are enabled.
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
target = args[0]
|
||||||
|
text = ' '.join(args[1:])
|
||||||
|
except IndexError:
|
||||||
|
irc.reply('Error: Not enough arguments. Needs 2: target nick and text.')
|
||||||
|
return
|
||||||
|
|
||||||
|
relay = world.plugins.get('relay')
|
||||||
|
if irc.protoname != 'clientbot':
|
||||||
|
irc.reply('Error: This command is only supported on Clientbot networks. Try /msg %s <text>' % target)
|
||||||
|
return
|
||||||
|
elif relay is None:
|
||||||
|
irc.reply('Error: PyLink Relay is not loaded.')
|
||||||
|
return
|
||||||
|
elif not text:
|
||||||
|
irc.reply('Error: No text given.')
|
||||||
|
return
|
||||||
|
|
||||||
|
uid = irc.nickToUid(target)
|
||||||
|
if not uid:
|
||||||
|
irc.reply('Error: Unknown user %s.' % target)
|
||||||
|
return
|
||||||
|
elif not relay.isRelayClient(irc, uid):
|
||||||
|
irc.reply('Error: %s is not a relay user.' % target)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
assert not irc.isInternalClient(source), "rpm is not allowed from PyLink bots"
|
||||||
|
# Send the message through relay by faking a hook for its handler.
|
||||||
|
relay.handle_messages(irc, source, 'RELAY_CLIENTBOT_PRIVMSG', {'target': uid, 'text': text})
|
||||||
|
irc.reply('Message sent.')
|
||||||
|
Loading…
Reference in New Issue
Block a user