mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-01 01:09:22 +01:00
p10: add GLINE support (#139)
This commit is contained in:
parent
410ade3b60
commit
cc9025a080
@ -60,6 +60,8 @@ class P10SIDGenerator():
|
|||||||
self.currentnum += 1
|
self.currentnum += 1
|
||||||
return sid
|
return sid
|
||||||
|
|
||||||
|
GLINE_MAX_EXPIRE = 604800
|
||||||
|
|
||||||
class P10Protocol(IRCS2SProtocol):
|
class P10Protocol(IRCS2SProtocol):
|
||||||
COMMAND_TOKENS = {
|
COMMAND_TOKENS = {
|
||||||
'AC': 'ACCOUNT',
|
'AC': 'ACCOUNT',
|
||||||
@ -490,6 +492,24 @@ class P10Protocol(IRCS2SProtocol):
|
|||||||
else:
|
else:
|
||||||
raise LookupError("No such PyLink client exists.")
|
raise LookupError("No such PyLink client exists.")
|
||||||
|
|
||||||
|
def set_server_ban(self, source, duration, user='*', host='*', reason='User banned'):
|
||||||
|
"""
|
||||||
|
Sets a server ban.
|
||||||
|
"""
|
||||||
|
assert not (user == host == '*'), "Refusing to set ridiculous ban on *@*"
|
||||||
|
|
||||||
|
# https://github.com/evilnet/nefarious2/blob/master/doc/p10.txt#L535
|
||||||
|
# <- ABAAA GL * +test@test.host 30 1500300185 1500300215 :haha, you're banned now!!!!1
|
||||||
|
currtime = int(time.time())
|
||||||
|
|
||||||
|
if duration == 0 or duration > GLINE_MAX_EXPIRE:
|
||||||
|
# IRCu and Nefarious set 7 weeks (604800 secs) as the max GLINE length - look for the
|
||||||
|
# GLINE_MAX_EXPIRE definition
|
||||||
|
log.debug('(%s) Lowering GLINE duration on %s@%s from %s to %s', self.name, user, host, duration, GLINE_MAX_EXPIRE)
|
||||||
|
duration = GLINE_MAX_EXPIRE
|
||||||
|
|
||||||
|
self._send_with_prefix(source, 'GL * +%s@%s %s %s %s :%s' % (user, host, duration, currtime, currtime+duration, reason))
|
||||||
|
|
||||||
def sjoin(self, server, channel, users, ts=None, modes=set()):
|
def sjoin(self, server, channel, users, ts=None, modes=set()):
|
||||||
"""Sends an SJOIN for a group of users to a channel.
|
"""Sends an SJOIN for a group of users to a channel.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user