mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-01 01:09:22 +01:00
plugins/admin.py -> plugins/bots.py
- admin: Drop "showchan" command. It's not very useful, and doesn't handle long output strings at all. - All the remaining commands are dedicated to spawning bots and playing with them anyways, so this new name fits better.
This commit is contained in:
parent
c0f5bedbd3
commit
0404801b18
@ -1,4 +1,8 @@
|
||||
# admin.py: PyLink administrative commands
|
||||
"""
|
||||
bots.py: Spawn virtual users/bots on a PyLink server and make them interact
|
||||
with things.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
@ -37,7 +41,7 @@ def quit(irc, source, args):
|
||||
u = utils.nickToUid(irc, nick)
|
||||
quitmsg = ' '.join(args[1:]) or 'Client Quit'
|
||||
irc.proto.quitClient(irc, u, quitmsg)
|
||||
irc.callHooks([u, 'PYLINK_ADMIN_QUIT', {'text': quitmsg, 'parse_as': 'QUIT'}])
|
||||
irc.callHooks([u, 'PYLINK_BOTSPLUGIN_QUIT', {'text': quitmsg, 'parse_as': 'QUIT'}])
|
||||
|
||||
def joinclient(irc, source, args):
|
||||
"""<target> <channel1>,[<channel2>], etc.
|
||||
@ -58,7 +62,7 @@ def joinclient(irc, source, args):
|
||||
utils.msg(irc, source, "Error: Invalid channel name %r." % channel)
|
||||
return
|
||||
irc.proto.joinClient(irc, u, channel)
|
||||
irc.callHooks([u, 'PYLINK_ADMIN_JOIN', {'channel': channel, 'users': [u],
|
||||
irc.callHooks([u, 'PYLINK_BOTSPLUGIN_JOIN', {'channel': channel, 'users': [u],
|
||||
'modes': irc.channels[channel].modes,
|
||||
'parse_as': 'JOIN'}])
|
||||
utils.add_cmd(joinclient, name='join')
|
||||
@ -82,7 +86,7 @@ def nick(irc, source, args):
|
||||
utils.msg(irc, source, 'Error: Invalid nickname %r.' % newnick)
|
||||
return
|
||||
irc.proto.nickClient(irc, u, newnick)
|
||||
irc.callHooks([u, 'PYLINK_ADMIN_NICK', {'newnick': newnick, 'oldnick': nick, 'parse_as': 'NICK'}])
|
||||
irc.callHooks([u, 'PYLINK_BOTSPLUGIN_NICK', {'newnick': newnick, 'oldnick': nick, 'parse_as': 'NICK'}])
|
||||
|
||||
@utils.add_cmd
|
||||
def part(irc, source, args):
|
||||
@ -103,7 +107,7 @@ def part(irc, source, args):
|
||||
utils.msg(irc, source, "Error: Invalid channel name %r." % channel)
|
||||
return
|
||||
irc.proto.partClient(irc, u, channel, reason)
|
||||
irc.callHooks([u, 'PYLINK_ADMIN_PART', {'channels': clist, 'text': reason, 'parse_as': 'PART'}])
|
||||
irc.callHooks([u, 'PYLINK_BOTSPLUGIN_PART', {'channels': clist, 'text': reason, 'parse_as': 'PART'}])
|
||||
|
||||
@utils.add_cmd
|
||||
def kick(irc, source, args):
|
||||
@ -128,25 +132,7 @@ def kick(irc, source, args):
|
||||
irc.proto.kickServer(irc, u, channel, targetu, reason)
|
||||
else:
|
||||
irc.proto.kickClient(irc, u, channel, targetu, reason)
|
||||
irc.callHooks([u, 'PYLINK_ADMIN_KICK', {'channel': channel, 'target': targetu, 'text': reason, 'parse_as': 'KICK'}])
|
||||
|
||||
@utils.add_cmd
|
||||
def showchan(irc, source, args):
|
||||
"""<channel>
|
||||
|
||||
Admin-only. Shows information about <channel>."""
|
||||
utils.checkAuthenticated(irc, source, allowOper=False)
|
||||
try:
|
||||
channel = args[0].lower()
|
||||
except IndexError:
|
||||
utils.msg(irc, source, "Error: Not enough arguments. Needs 1: channel.")
|
||||
return
|
||||
if channel not in irc.channels:
|
||||
utils.msg(irc, source, 'Error: Unknown channel %r.' % channel)
|
||||
return
|
||||
s = ['\x02%s\x02: %s' % (k, v) for k, v in sorted(irc.channels[channel].__dict__.items())]
|
||||
s = 'Information on channel \x02%s\x02: %s' % (channel, '; '.join(s))
|
||||
utils.msg(irc, source, s)
|
||||
irc.callHooks([u, 'PYLINK_BOTSPLUGIN_KICK', {'channel': channel, 'target': targetu, 'text': reason, 'parse_as': 'KICK'}])
|
||||
|
||||
@utils.add_cmd
|
||||
def mode(irc, source, args):
|
||||
@ -171,11 +157,11 @@ def mode(irc, source, args):
|
||||
return
|
||||
if utils.isInternalServer(irc, modesource):
|
||||
irc.proto.modeServer(irc, modesource, target, parsedmodes)
|
||||
irc.callHooks([modesource, 'PYLINK_ADMIN_MODE', {'target': target, 'modes': parsedmodes, 'parse_as': 'MODE'}])
|
||||
irc.callHooks([modesource, 'PYLINK_BOTSPLUGIN_MODE', {'target': target, 'modes': parsedmodes, 'parse_as': 'MODE'}])
|
||||
else:
|
||||
sourceuid = utils.nickToUid(irc, modesource)
|
||||
irc.proto.modeClient(irc, sourceuid, target, parsedmodes)
|
||||
irc.callHooks([sourceuid, 'PYLINK_ADMIN_MODE', {'target': target, 'modes': parsedmodes, 'parse_as': 'MODE'}])
|
||||
irc.callHooks([sourceuid, 'PYLINK_BOTSPLUGIN_MODE', {'target': target, 'modes': parsedmodes, 'parse_as': 'MODE'}])
|
||||
|
||||
@utils.add_cmd
|
||||
def msg(irc, source, args):
|
||||
@ -203,4 +189,4 @@ def msg(irc, source, args):
|
||||
utils.msg(irc, source, 'Error: No text given.')
|
||||
return
|
||||
irc.proto.messageClient(irc, sourceuid, real_target, text)
|
||||
irc.callHooks([sourceuid, 'PYLINK_ADMIN_MSG', {'target': real_target, 'text': text, 'parse_as': 'PRIVMSG'}])
|
||||
irc.callHooks([sourceuid, 'PYLINK_BOTSPLUGIN_MSG', {'target': real_target, 'text': text, 'parse_as': 'PRIVMSG'}])
|
Loading…
Reference in New Issue
Block a user