diff --git a/docs/modelists/extbans.csv b/docs/modelists/extbans.csv index 1185df0..eb6c760 100644 --- a/docs/modelists/extbans.csv +++ b/docs/modelists/extbans.csv @@ -1,33 +1,35 @@ -Extban / IRCd,charybdis,InspIRCd,UnrealIRCd -ban_account,$a:,R:,~a: -ban_account_legacy,,,~R: -ban_all_opers,$o,, -ban_all_registered,$a,, -ban_all_ssl,$z,, -ban_banshare,$j:,, -ban_blockcaps,,B:, -ban_blockcolor,,c:, -ban_certfp,,z:,~S: -ban_extgecos,$x:,, -ban_inchannel,$c:,j:,~c: -ban_invites,,A:, -ban_noctcp,,C:, -ban_nojoins,,,~j: -ban_nokicks,,Q:, -ban_nonick,,N:,~n: -ban_nonotice,,T:, -ban_not_account,$~a:,, -ban_not_banshare,$~j:,, -ban_not_extgecos,$~x:,, -ban_not_inchannel,$~c:,, -ban_not_opers,$~o,, -ban_not_realname,$~r:,, -ban_not_server,$~s:,, -ban_not_ssl,$~z,, -ban_opertype,,O:,~O: -ban_partmsgs,,p:, -ban_realname,$r:,r:,~r: -ban_server,$s:,s:, -ban_stripcolor,,S:, -ban_unregistered_matching,,U:, -quiet,+q (cmode),m:,~q: +Extban / IRCd,charybdis,InspIRCd,UnrealIRCd,Nefarious +ban_account,$a:,R:,~a:,~a: +ban_account_legacy,,,~R:, +ban_all_opers,$o,,, +ban_all_registered,$a,,, +ban_all_ssl,$z,,, +ban_banshare,$j:,,,~j: +ban_blockcaps,,B:,, +ban_blockcolor,,c:,, +ban_certfp,,z:,~S:, +ban_extgecos,$x:,,, +ban_inchannel,$c:,j:,~c:,~c: +ban_invites,,A:,, +ban_mark,,,,~m: +ban_noctcp,,C:,, +ban_nojoins,,,~j:, +ban_nokicks,,Q:,, +ban_nonick,,N:,~n:,~n: +ban_nonotice,,T:,, +ban_not_account,$~a:,,, +ban_not_banshare,$~j:,,, +ban_not_extgecos,$~x:,,, +ban_not_inchannel,$~c:,,, +ban_not_opers,$~o,,, +ban_not_realname,$~r:,,, +ban_not_server,$~s:,,, +ban_not_ssl,$~z,,, +ban_opertype,,O:,~O:, +ban_partmsgs,,p:,, +ban_realname,$r:,r:,~r:,~r: +ban_server,$s:,s:,, +ban_stripcolor,,S:,, +ban_unregistered_mark,,,,~M: +ban_unregistered_matching,,U:,, +quiet,+q (cmode),m:,~q:,~q: diff --git a/docs/modelists/extbans.html b/docs/modelists/extbans.html index 6d85ad2..5fa4c71 100644 --- a/docs/modelists/extbans.html +++ b/docs/modelists/extbans.html @@ -76,103 +76,110 @@ td:first-child, th[scope="row"] { charybdis InspIRCd UnrealIRCd +Nefarious ban_account -$a:dataR:data~a:data +$a:dataR:data~a:data~a:data ban_account_legacy -n/an/a~R:data +n/an/a~R:datan/a ban_all_opers -$on/an/a +$on/an/an/a ban_all_registered -$an/an/a +$an/an/an/a ban_all_ssl -$zn/an/a +$zn/an/an/a ban_banshare -$j:datan/an/a +$j:datan/an/a~j:data ban_blockcaps -n/aB:datan/a +n/aB:datan/an/a ban_blockcolor -n/ac:datan/a +n/ac:datan/an/a ban_certfp -n/az:data~S:data +n/az:data~S:datan/a ban_extgecos -$x:datan/an/a +$x:datan/an/an/a ban_inchannel -$c:dataj:data~c:data +$c:dataj:data~c:data~c:data ban_invites -n/aA:datan/a +n/aA:datan/an/a + +ban_mark +n/an/an/a~m:data ban_noctcp -n/aC:datan/a +n/aC:datan/an/a ban_nojoins -n/an/a~j:data +n/an/a~j:datan/a ban_nokicks -n/aQ:datan/a +n/aQ:datan/an/a ban_nonick -n/aN:data~n:data +n/aN:data~n:data~n:data ban_nonotice -n/aT:datan/a +n/aT:datan/an/a ban_not_account -$~a:datan/an/a +$~a:datan/an/an/a ban_not_banshare -$~j:datan/an/a +$~j:datan/an/an/a ban_not_extgecos -$~x:datan/an/a +$~x:datan/an/an/a ban_not_inchannel -$~c:datan/an/a +$~c:datan/an/an/a ban_not_opers -$~on/an/a +$~on/an/an/a ban_not_realname -$~r:datan/an/a +$~r:datan/an/an/a ban_not_server -$~s:datan/an/a +$~s:datan/an/an/a ban_not_ssl -$~zn/an/a +$~zn/an/an/a ban_opertype -n/aO:data~O:data +n/aO:data~O:datan/a ban_partmsgs -n/ap:datan/a +n/ap:datan/an/a ban_realname -$r:datar:data~r:data +$r:datar:data~r:data~r:data ban_server -$s:datas:datan/a +$s:datas:datan/an/a ban_stripcolor -n/aS:datan/a +n/aS:datan/an/a + +ban_unregistered_mark +n/an/an/a~M:data ban_unregistered_matching -n/aU:datan/a +n/aU:datan/an/a quiet -+q
(cmode)m:data~q:data ++q
(cmode)m:data~q:data~q:data diff --git a/protocols/p10.py b/protocols/p10.py index 4af3421..e1ffb52 100644 --- a/protocols/p10.py +++ b/protocols/p10.py @@ -796,6 +796,20 @@ class P10Protocol(IRCS2SProtocol): 'registered': 'r', 'cloak_sethost': 'h', 'cloak_fakehost': 'f', 'cloak_hashedhost': 'C', 'cloak_hashedip': 'c', 'locop': 'O', '*A': '', '*B': '', '*C': 'fCcrh', '*D': 'oOiwskgxnqBdDHIRWaXLz'}) + # Nefarious supports extbans as documented at + # https://github.com/evilnet/nefarious2/blob/master/doc/extendedbans.txt + self.extbans_matching.update({ + 'ban_account': '~a:', + 'ban_inchannel': '~c:', + 'ban_realname': '~r:', + 'ban_mark': '~m:', + 'ban_unregistered_mark': '~M:', + 'ban_banshare': '~j:' + }) + self.extbans_acting.update({ + 'quiet': '~q:', + 'ban_nonick': '~n:' + }) elif p10_ircd == 'snircd': # snircd has +u instead of +Q for hidequits, and fewer chanel modes. cmodes = {'oplevel_apass': 'A', 'oplevel_upass': 'U', 'delayjoin': 'D', 'regonly': 'r',