mirror of
https://github.com/jlu5/PyLink.git
synced 2025-01-23 18:54:05 +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 sys
|
||||||
import os
|
import os
|
||||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
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)
|
u = utils.nickToUid(irc, nick)
|
||||||
quitmsg = ' '.join(args[1:]) or 'Client Quit'
|
quitmsg = ' '.join(args[1:]) or 'Client Quit'
|
||||||
irc.proto.quitClient(irc, u, quitmsg)
|
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):
|
def joinclient(irc, source, args):
|
||||||
"""<target> <channel1>,[<channel2>], etc.
|
"""<target> <channel1>,[<channel2>], etc.
|
||||||
@ -58,7 +62,7 @@ def joinclient(irc, source, args):
|
|||||||
utils.msg(irc, source, "Error: Invalid channel name %r." % channel)
|
utils.msg(irc, source, "Error: Invalid channel name %r." % channel)
|
||||||
return
|
return
|
||||||
irc.proto.joinClient(irc, u, channel)
|
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,
|
'modes': irc.channels[channel].modes,
|
||||||
'parse_as': 'JOIN'}])
|
'parse_as': 'JOIN'}])
|
||||||
utils.add_cmd(joinclient, name='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)
|
utils.msg(irc, source, 'Error: Invalid nickname %r.' % newnick)
|
||||||
return
|
return
|
||||||
irc.proto.nickClient(irc, u, newnick)
|
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
|
@utils.add_cmd
|
||||||
def part(irc, source, args):
|
def part(irc, source, args):
|
||||||
@ -103,7 +107,7 @@ def part(irc, source, args):
|
|||||||
utils.msg(irc, source, "Error: Invalid channel name %r." % channel)
|
utils.msg(irc, source, "Error: Invalid channel name %r." % channel)
|
||||||
return
|
return
|
||||||
irc.proto.partClient(irc, u, channel, reason)
|
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
|
@utils.add_cmd
|
||||||
def kick(irc, source, args):
|
def kick(irc, source, args):
|
||||||
@ -128,25 +132,7 @@ def kick(irc, source, args):
|
|||||||
irc.proto.kickServer(irc, u, channel, targetu, reason)
|
irc.proto.kickServer(irc, u, channel, targetu, reason)
|
||||||
else:
|
else:
|
||||||
irc.proto.kickClient(irc, u, channel, targetu, reason)
|
irc.proto.kickClient(irc, u, channel, targetu, reason)
|
||||||
irc.callHooks([u, 'PYLINK_ADMIN_KICK', {'channel': channel, 'target': targetu, 'text': reason, 'parse_as': 'KICK'}])
|
irc.callHooks([u, 'PYLINK_BOTSPLUGIN_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)
|
|
||||||
|
|
||||||
@utils.add_cmd
|
@utils.add_cmd
|
||||||
def mode(irc, source, args):
|
def mode(irc, source, args):
|
||||||
@ -171,11 +157,11 @@ def mode(irc, source, args):
|
|||||||
return
|
return
|
||||||
if utils.isInternalServer(irc, modesource):
|
if utils.isInternalServer(irc, modesource):
|
||||||
irc.proto.modeServer(irc, modesource, target, parsedmodes)
|
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:
|
else:
|
||||||
sourceuid = utils.nickToUid(irc, modesource)
|
sourceuid = utils.nickToUid(irc, modesource)
|
||||||
irc.proto.modeClient(irc, sourceuid, target, parsedmodes)
|
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
|
@utils.add_cmd
|
||||||
def msg(irc, source, args):
|
def msg(irc, source, args):
|
||||||
@ -203,4 +189,4 @@ def msg(irc, source, args):
|
|||||||
utils.msg(irc, source, 'Error: No text given.')
|
utils.msg(irc, source, 'Error: No text given.')
|
||||||
return
|
return
|
||||||
irc.proto.messageClient(irc, sourceuid, real_target, text)
|
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