3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-26 04:32:51 +01:00

inspircd: merge _sendFromUser and _sendFromServer into _send

They do exactly the same thing, just with different variable names. Keeping two of these is useless...

(why didn't I notice this earlier?)
This commit is contained in:
James Lu 2015-07-14 22:33:56 -07:00
parent 8942c2fa08
commit ef0436c906

View File

@ -19,12 +19,9 @@ from classes import *
hook_map = {'FJOIN': 'JOIN', 'RSQUIT': 'SQUIT', 'FMODE': 'MODE', hook_map = {'FJOIN': 'JOIN', 'RSQUIT': 'SQUIT', 'FMODE': 'MODE',
'FTOPIC': 'TOPIC', 'ENCAP': 'KNOCK', 'OPERTYPE': 'MODE'} 'FTOPIC': 'TOPIC', 'ENCAP': 'KNOCK', 'OPERTYPE': 'MODE'}
def _sendFromServer(irc, sid, msg): def _send(irc, sid, msg):
irc.send(':%s %s' % (sid, msg)) irc.send(':%s %s' % (sid, msg))
def _sendFromUser(irc, numeric, msg):
irc.send(':%s %s' % (numeric, msg))
def spawnClient(irc, nick, ident='null', host='null', realhost=None, modes=set(), def spawnClient(irc, nick, ident='null', host='null', realhost=None, modes=set(),
server=None, ip='0.0.0.0', realname=None): server=None, ip='0.0.0.0', realname=None):
server = server or irc.sid server = server or irc.sid
@ -39,7 +36,7 @@ def spawnClient(irc, nick, ident='null', host='null', realhost=None, modes=set()
realname = realname or irc.botdata['realname'] realname = realname or irc.botdata['realname']
realhost = realhost or host realhost = realhost or host
raw_modes = utils.joinModes(modes) raw_modes = utils.joinModes(modes)
_sendFromServer(irc, server, "UID {uid} {ts} {nick} {realhost} {host} {ident} {ip}" _send(irc, server, "UID {uid} {ts} {nick} {realhost} {host} {ident} {ip}"
" {ts} {modes} + :{realname}".format(ts=ts, host=host, " {ts} {modes} + :{realname}".format(ts=ts, host=host,
nick=nick, ident=ident, uid=uid, nick=nick, ident=ident, uid=uid,
modes=raw_modes, ip=ip, realname=realname, modes=raw_modes, ip=ip, realname=realname,
@ -60,7 +57,7 @@ def joinClient(irc, client, channel):
log.error('(%s) Error trying to join client %r to %r (no such pseudoclient exists)', irc.name, client, channel) log.error('(%s) Error trying to join client %r to %r (no such pseudoclient exists)', irc.name, client, channel)
raise LookupError('No such PyLink PseudoClient exists.') raise LookupError('No such PyLink PseudoClient exists.')
# One channel per line here! # One channel per line here!
_sendFromServer(irc, server, "FJOIN {channel} {ts} {modes} :,{uid}".format( _send(irc, server, "FJOIN {channel} {ts} {modes} :,{uid}".format(
ts=irc.channels[channel].ts, uid=client, channel=channel, ts=irc.channels[channel].ts, uid=client, channel=channel,
modes=utils.joinModes(irc.channels[channel].modes))) modes=utils.joinModes(irc.channels[channel].modes)))
irc.channels[channel].users.add(client) irc.channels[channel].users.add(client)
@ -95,7 +92,7 @@ def sjoinServer(irc, server, channel, users, ts=None):
changedmodes.append(('+%s' % m, user)) changedmodes.append(('+%s' % m, user))
utils.applyModes(irc, channel, changedmodes) utils.applyModes(irc, channel, changedmodes)
namelist = ' '.join(namelist) namelist = ' '.join(namelist)
_sendFromServer(irc, server, "FJOIN {channel} {ts} {modes} :{users}".format( _send(irc, server, "FJOIN {channel} {ts} {modes} :{users}".format(
ts=ts, users=namelist, channel=channel, ts=ts, users=namelist, channel=channel,
modes=utils.joinModes(modes))) modes=utils.joinModes(modes)))
irc.channels[channel].users.update(uids) irc.channels[channel].users.update(uids)
@ -108,7 +105,7 @@ def partClient(irc, client, channel, reason=None):
msg = "PART %s" % channel msg = "PART %s" % channel
if reason: if reason:
msg += " :%s" % reason msg += " :%s" % reason
_sendFromUser(irc, client, msg) _send(irc, client, msg)
handle_part(irc, client, 'PART', [channel]) handle_part(irc, client, 'PART', [channel])
def removeClient(irc, numeric): def removeClient(irc, numeric):
@ -129,7 +126,7 @@ def quitClient(irc, numeric, reason):
Quits a PyLink PseudoClient.""" Quits a PyLink PseudoClient."""
if utils.isInternalClient(irc, numeric): if utils.isInternalClient(irc, numeric):
_sendFromUser(irc, numeric, "QUIT :%s" % reason) _send(irc, numeric, "QUIT :%s" % reason)
removeClient(irc, numeric) removeClient(irc, numeric)
else: else:
raise LookupError("No such PyLink PseudoClient exists. If you're trying to remove " raise LookupError("No such PyLink PseudoClient exists. If you're trying to remove "
@ -143,7 +140,7 @@ def _sendKick(irc, numeric, channel, target, reason=None):
channel = channel.lower() channel = channel.lower()
if not reason: if not reason:
reason = 'No reason given' reason = 'No reason given'
_sendFromUser(irc, numeric, 'KICK %s %s :%s' % (channel, target, reason)) _send(irc, numeric, 'KICK %s %s :%s' % (channel, target, reason))
# We can pretend the target left by its own will; all we really care about # We can pretend the target left by its own will; all we really care about
# is that the target gets removed from the channel userlist, and calling # is that the target gets removed from the channel userlist, and calling
# handle_part() does that just fine. # handle_part() does that just fine.
@ -165,7 +162,7 @@ def nickClient(irc, numeric, newnick):
Changes the nick of a PyLink PseudoClient.""" Changes the nick of a PyLink PseudoClient."""
if not utils.isInternalClient(irc, numeric): if not utils.isInternalClient(irc, numeric):
raise LookupError('No such PyLink PseudoClient exists.') raise LookupError('No such PyLink PseudoClient exists.')
_sendFromUser(irc, numeric, 'NICK %s %s' % (newnick, int(time.time()))) _send(irc, numeric, 'NICK %s %s' % (newnick, int(time.time())))
irc.users[numeric].nick = newnick irc.users[numeric].nick = newnick
def _sendModes(irc, numeric, target, modes, ts=None): def _sendModes(irc, numeric, target, modes, ts=None):
@ -175,9 +172,9 @@ def _sendModes(irc, numeric, target, modes, ts=None):
utils.applyModes(irc, target, modes) utils.applyModes(irc, target, modes)
if utils.isChannel(target): if utils.isChannel(target):
ts = ts or irc.channels[target.lower()].ts ts = ts or irc.channels[target.lower()].ts
_sendFromUser(irc, numeric, 'FMODE %s %s %s' % (target, ts, joinedmodes)) _send(irc, numeric, 'FMODE %s %s %s' % (target, ts, joinedmodes))
else: else:
_sendFromUser(irc, numeric, 'MODE %s %s' % (target, joinedmodes)) _send(irc, numeric, 'MODE %s %s' % (target, joinedmodes))
def modeClient(irc, numeric, target, modes, ts=None): def modeClient(irc, numeric, target, modes, ts=None):
"""<irc object> <client numeric> <list of modes> """<irc object> <client numeric> <list of modes>
@ -206,7 +203,7 @@ def killServer(irc, numeric, target, reason):
""" """
if not utils.isInternalServer(irc, numeric): if not utils.isInternalServer(irc, numeric):
raise LookupError('No such PyLink PseudoServer exists.') raise LookupError('No such PyLink PseudoServer exists.')
_sendFromServer(irc, numeric, 'KILL %s :%s' % (target, reason)) _send(irc, numeric, 'KILL %s :%s' % (target, reason))
# We don't need to call removeClient here, since the remote server # We don't need to call removeClient here, since the remote server
# will send a QUIT from the target if the command succeeds. # will send a QUIT from the target if the command succeeds.
@ -217,7 +214,7 @@ def killClient(irc, numeric, target, reason):
""" """
if not utils.isInternalClient(irc, numeric): if not utils.isInternalClient(irc, numeric):
raise LookupError('No such PyLink PseudoClient exists.') raise LookupError('No such PyLink PseudoClient exists.')
_sendFromServer(irc, numeric, 'KILL %s :%s' % (target, reason)) _send(irc, numeric, 'KILL %s :%s' % (target, reason))
# We don't need to call removeClient here, since the remote server # We don't need to call removeClient here, since the remote server
# will send a QUIT from the target if the command succeeds. # will send a QUIT from the target if the command succeeds.
@ -227,7 +224,7 @@ def messageClient(irc, numeric, target, text):
Sends PRIVMSG <text> from PyLink client <client numeric>.""" Sends PRIVMSG <text> from PyLink client <client numeric>."""
if not utils.isInternalClient(irc, numeric): if not utils.isInternalClient(irc, numeric):
raise LookupError('No such PyLink PseudoClient exists.') raise LookupError('No such PyLink PseudoClient exists.')
_sendFromUser(irc, numeric, 'PRIVMSG %s :%s' % (target, text)) _send(irc, numeric, 'PRIVMSG %s :%s' % (target, text))
def noticeClient(irc, numeric, target, text): def noticeClient(irc, numeric, target, text):
"""<irc object> <client numeric> <text> """<irc object> <client numeric> <text>
@ -235,7 +232,7 @@ def noticeClient(irc, numeric, target, text):
Sends NOTICE <text> from PyLink client <client numeric>.""" Sends NOTICE <text> from PyLink client <client numeric>."""
if not utils.isInternalClient(irc, numeric): if not utils.isInternalClient(irc, numeric):
raise LookupError('No such PyLink PseudoClient exists.') raise LookupError('No such PyLink PseudoClient exists.')
_sendFromUser(irc, numeric, 'NOTICE %s :%s' % (target, text)) _send(irc, numeric, 'NOTICE %s :%s' % (target, text))
def topicClient(irc, numeric, target, text): def topicClient(irc, numeric, target, text):
"""<irc object> <client numeric> <text> """<irc object> <client numeric> <text>
@ -243,7 +240,7 @@ def topicClient(irc, numeric, target, text):
Sets the topic for <channel> to <text> from PyLink client <client numeric>.""" Sets the topic for <channel> to <text> from PyLink client <client numeric>."""
if not utils.isInternalClient(irc, numeric): if not utils.isInternalClient(irc, numeric):
raise LookupError('No such PyLink PseudoClient exists.') raise LookupError('No such PyLink PseudoClient exists.')
_sendFromUser(irc, numeric, 'TOPIC %s :%s' % (target, text)) _send(irc, numeric, 'TOPIC %s :%s' % (target, text))
def inviteClient(irc, numeric, target, channel): def inviteClient(irc, numeric, target, channel):
"""<irc object> <client numeric> <text> """<irc object> <client numeric> <text>
@ -251,7 +248,7 @@ def inviteClient(irc, numeric, target, channel):
Invites <target> to <channel> to <text> from PyLink client <client numeric>.""" Invites <target> to <channel> to <text> from PyLink client <client numeric>."""
if not utils.isInternalClient(irc, numeric): if not utils.isInternalClient(irc, numeric):
raise LookupError('No such PyLink PseudoClient exists.') raise LookupError('No such PyLink PseudoClient exists.')
_sendFromUser(irc, numeric, 'INVITE %s %s' % (target, channel)) _send(irc, numeric, 'INVITE %s %s' % (target, channel))
def knockClient(irc, numeric, target, text): def knockClient(irc, numeric, target, text):
"""<irc object> <client numeric> <text> """<irc object> <client numeric> <text>
@ -259,7 +256,7 @@ def knockClient(irc, numeric, target, text):
Knocks on <channel> with <text> from PyLink client <client numeric>.""" Knocks on <channel> with <text> from PyLink client <client numeric>."""
if not utils.isInternalClient(irc, numeric): if not utils.isInternalClient(irc, numeric):
raise LookupError('No such PyLink PseudoClient exists.') raise LookupError('No such PyLink PseudoClient exists.')
_sendFromUser(irc, numeric, 'ENCAP * KNOCK %s :%s' % (target, text)) _send(irc, numeric, 'ENCAP * KNOCK %s :%s' % (target, text))
def updateClient(irc, numeric, field, text): def updateClient(irc, numeric, field, text):
"""<irc object> <client numeric> <field> <text> """<irc object> <client numeric> <field> <text>
@ -268,13 +265,13 @@ def updateClient(irc, numeric, field, text):
field = field.upper() field = field.upper()
if field == 'IDENT': if field == 'IDENT':
handle_fident(irc, numeric, 'PYLINK_UPDATECLIENT_IDENT', [text]) handle_fident(irc, numeric, 'PYLINK_UPDATECLIENT_IDENT', [text])
_sendFromUser(irc, numeric, 'FIDENT %s' % text) _send(irc, numeric, 'FIDENT %s' % text)
elif field == 'HOST': elif field == 'HOST':
handle_fhost(irc, numeric, 'PYLINK_UPDATECLIENT_HOST', [text]) handle_fhost(irc, numeric, 'PYLINK_UPDATECLIENT_HOST', [text])
_sendFromUser(irc, numeric, 'FHOST %s' % text) _send(irc, numeric, 'FHOST %s' % text)
elif field in ('REALNAME', 'GECOS'): elif field in ('REALNAME', 'GECOS'):
handle_fname(irc, numeric, 'PYLINK_UPDATECLIENT_GECOS', [text]) handle_fname(irc, numeric, 'PYLINK_UPDATECLIENT_GECOS', [text])
_sendFromUser(irc, numeric, 'FNAME :%s' % text) _send(irc, numeric, 'FNAME :%s' % text)
else: else:
raise ValueError("Changing field %r of a client is unsupported by this protocol." % field) raise ValueError("Changing field %r of a client is unsupported by this protocol." % field)
@ -302,7 +299,7 @@ def handle_ping(irc, source, command, args):
# <- :70M PING 70M 0AL # <- :70M PING 70M 0AL
# -> :0AL PONG 0AL 70M # -> :0AL PONG 0AL 70M
if utils.isInternalServer(irc, args[1]): if utils.isInternalServer(irc, args[1]):
_sendFromServer(irc, args[1], 'PONG %s %s' % (args[1], source)) _send(irc, args[1], 'PONG %s %s' % (args[1], source))
def handle_privmsg(irc, source, command, args): def handle_privmsg(irc, source, command, args):
if args[0] == irc.pseudoclient.uid: if args[0] == irc.pseudoclient.uid:
@ -472,7 +469,7 @@ def handle_rsquit(irc, numeric, command, args):
if irc.users[numeric].identified: if irc.users[numeric].identified:
uplink = irc.servers[target].uplink uplink = irc.servers[target].uplink
reason = 'Requested by %s' % irc.users[numeric].nick reason = 'Requested by %s' % irc.users[numeric].nick
_sendFromServer(irc, uplink, 'SQUIT %s :%s' % (target, reason)) _send(irc, uplink, 'SQUIT %s :%s' % (target, reason))
return handle_squit(irc, numeric, 'SQUIT', [target, reason]) return handle_squit(irc, numeric, 'SQUIT', [target, reason])
else: else:
utils.msg(irc, numeric, 'Error: you are not authorized to split servers!', notice=True) utils.msg(irc, numeric, 'Error: you are not authorized to split servers!', notice=True)
@ -483,7 +480,7 @@ def handle_idle(irc, numeric, command, args):
# -> :1MLAAAAIG IDLE 70MAAAAAA 1433036797 319 # -> :1MLAAAAIG IDLE 70MAAAAAA 1433036797 319
sourceuser = numeric sourceuser = numeric
targetuser = args[0] targetuser = args[0]
_sendFromUser(irc, targetuser, 'IDLE %s %s 0' % (sourceuser, irc.users[targetuser].ts)) _send(irc, targetuser, 'IDLE %s %s 0' % (sourceuser, irc.users[targetuser].ts))
def handle_events(irc, data): def handle_events(irc, data):
# Each server message looks something like this: # Each server message looks something like this:
@ -609,14 +606,14 @@ def spawnServer(irc, name, sid=None, uplink=None, desc='PyLink Server', endburst
raise ValueError('Server %r is not a PyLink internal PseudoServer!' % uplink) raise ValueError('Server %r is not a PyLink internal PseudoServer!' % uplink)
if not utils.isServerName(name): if not utils.isServerName(name):
raise ValueError('Invalid server name %r' % name) raise ValueError('Invalid server name %r' % name)
_sendFromServer(irc, uplink, 'SERVER %s * 1 %s :%s' % (name, sid, desc)) _send(irc, uplink, 'SERVER %s * 1 %s :%s' % (name, sid, desc))
irc.servers[sid] = IrcServer(uplink, name, internal=True) irc.servers[sid] = IrcServer(uplink, name, internal=True)
if endburst: if endburst:
endburstServer(irc, sid) endburstServer(irc, sid)
return sid return sid
def endburstServer(irc, sid): def endburstServer(irc, sid):
_sendFromServer(irc, sid, 'ENDBURST') _send(irc, sid, 'ENDBURST')
irc.servers[sid].has_bursted = True irc.servers[sid].has_bursted = True
def handle_ftopic(irc, numeric, command, args): def handle_ftopic(irc, numeric, command, args):