mirror of
https://github.com/jlu5/PyLink.git
synced 2025-01-23 18:54:05 +01:00
docs: revamp mode list docs
- HTML version now available via a .csv -> .html generator script - Addded a column for ChatIRCd
This commit is contained in:
parent
30dc4a2b27
commit
4c0d765a2f
1
.gitignore
vendored
1
.gitignore
vendored
@ -13,6 +13,7 @@ __pycache__/
|
||||
*.py[cod]
|
||||
*.bak
|
||||
*~
|
||||
*#
|
||||
*.save*
|
||||
*.db
|
||||
*.pid
|
||||
|
64
docs/modelists/channel-modes.csv
Normal file
64
docs/modelists/channel-modes.csv
Normal file
@ -0,0 +1,64 @@
|
||||
Channel Mode / IRCd,RFC 1459,InspIRCd,charybdis,Elemental-IRCd,ChatIRCd,UnrealIRCd,Nefarious,snircd,IRCu,ircd-ratbox,IRCd-Hybrid,ngIRCd
|
||||
admin,,"a (m_customprefix, m_chanprotect)",,a (when enabled),,a,,,,,,a
|
||||
adminonly,,,A (ext/chm_adminonly),A (ext/chm_adminonly.so),A (ext/chm_adminonly),,a,,,,,
|
||||
allowinvite,,A (m_allowinvite),g,g,g,,,,,,,
|
||||
autoop,,w (m_autoop),,,,,,,,,,
|
||||
ban,b,b,b,b,b,b,b,b,b,b,b,b
|
||||
banexception,,e (m_banexception),e,e,e,e,e,,,e,e,e
|
||||
blockcaps,,B (m_blockcaps),,G (ext/chm_nocaps.so),,,,,,,,
|
||||
blockcolor,,c (m_blockcolor),,,,c,c,c,c,,c,
|
||||
delayjoin,,,,,,D,D,D,D,,,
|
||||
exemptchanops,,X (m_exemptchanops),,,,,,,,,,
|
||||
filter,,g (m_filter),,,,,,,,,,
|
||||
flood,,f (m_messageflood),,,,,,,,,,
|
||||
flood_unreal,,,,,,f,,,,,,
|
||||
freetarget,,,F,F,F,,,,,,,
|
||||
had_delayjoin,,,,,,,d,d,d,,,
|
||||
halfop,,"h (m_customprefix, m_halfop)",,h (when enabled),,h,,,,,h,h
|
||||
hiddenbans,,,,u,,,,,,,,
|
||||
hidequits,,,,,,,Q,u,,,,
|
||||
history,,H (m_chanhistory),,,,,,,,,,
|
||||
invex,,I (m_inviteexception),I,I,I,I,,,,I,I,I
|
||||
inviteonly,i,i,i,i,i,i,i,i,i,i,i,i
|
||||
issecure,,,,,,Z,,,,,,
|
||||
joinflood,,j (m_joinflood),j,j,j,,,,,,,
|
||||
key,k,k,k,k,k,k,k,k,k,k,k,k
|
||||
kicknorejoin,,J (m_kicknorejoin),,J,,,,,,,,
|
||||
largebanlist,,,L,L,L,,,,,,,
|
||||
limit,l,l,l,l,l,l,l,l,l,l,l,l
|
||||
moderated,m,m,m,m,m,m,m,m,m,m,m,m
|
||||
netadminonly,,,,,N (ext/chm_netadminonly),,,,,,,
|
||||
nickflood,,F (m_nickflood),,,,,,,,,,
|
||||
noamsg,,,,,,,T,T,,,,
|
||||
noctcp,,C (m_noctcp),C,C,C,C,C,C,C,,C,
|
||||
noextmsg,n,n,n,n,n,n,n,,,n,n,n
|
||||
noforwards,,,Q,Q,Q,,,,,,,
|
||||
noinvite,,,,,,V,,,,,,V
|
||||
nokick,,Q (m_nokicks),,E,,Q,,,,,,Q
|
||||
noknock,,K (m_knock),p*,p*,p*,K,,,,p*,p*,
|
||||
nonick,,N (m_nonicks),,d,,N,,,,,,N
|
||||
nonotice,,T (m_nonotice),T (ext/chm_nonotice),T,T (ext/chm_nonotice),T,N,N,,,,
|
||||
official-join,,Y (m_ojoin),,,,,,,,,,
|
||||
op,o,o,o,o,o,o,o,o,o,o,o,o
|
||||
operonly,,O (m_operchans),O (ext/chm_operonly),O (ext/chm_operonly.so),O (ext/chm_operonly),O,O,,,,O,O
|
||||
oplevel_apass,,,,,,,A,A,A,,,
|
||||
oplevel_upass,,,,,,,U,U,U,,,
|
||||
opmoderated,,U (extras/m_opmoderated),z,z,z,,,,,,,
|
||||
owner,,"q (m_customprefix, m_chanprotect)",,y (when enabled),,q,,,,,,q
|
||||
paranoia,,,,,,,,,,,p*,
|
||||
permanent,,P (m_permchannels),P,P,P,P,z,,,,,P
|
||||
private,p,p,p*,p*,p*,p,p,p,p,p*,p*,p
|
||||
quiet,,,q,q,q,,,,,,,
|
||||
redirect,,L (m_redirect),f,f,f,L,L,,,,,
|
||||
registered,,r (m_services_account),,,,r,R,R,R,,r,r
|
||||
regmoderated,,M (m_services_account),,,,M,M,M,,,M,M
|
||||
regonly,,R (m_services_account),r,r,r,R,r,r,r,r,R,R
|
||||
repeat,,E (m_repeat),,K (ext/chm_norepeat.c),,,,,,,,
|
||||
secret,s,s,s,s,s,s,s,s,s,s,s,s
|
||||
sslonly,,z (m_sslmodes),S (ext/chm_sslonly),S (ext/chm_sslonly.c),S (ext/chm_sslonly),z,,,,S,S,z
|
||||
stripcolor,,S (m_stripcolor),c,c,c,S,S,,,,,
|
||||
topiclock,t,t,t,t,t,t,t,t,t,t,t,t
|
||||
voice,v,v,v,v,v,v,v,v,v,v,v,v
|
||||
,,,,,,,,,,,,
|
||||
----,,,,,,,,,,,,
|
||||
"* Mode +p corresponds to both “noknock” and “private” on TS6 IRCds, as well as “paranoia” on hybrid.",,,,,,,,,,,,
|
|
273
docs/modelists/channel-modes.html
Normal file
273
docs/modelists/channel-modes.html
Normal file
@ -0,0 +1,273 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<meta name=viewport content="width=device-width, initial-scale=1">
|
||||
|
||||
<head>
|
||||
<title>Supported Channel Modes for PyLink</title>
|
||||
<style>
|
||||
|
||||
html {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.note {
|
||||
color: #555555;
|
||||
}
|
||||
|
||||
/* (╮°-°)╮┳━┳ */
|
||||
table, th, td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
td, th {
|
||||
text-align: center;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
td:first-child, th[scope="row"] {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Table cells */
|
||||
.tablecell-yes {
|
||||
background-color: #A7F2A5
|
||||
}
|
||||
|
||||
.tablecell-no {
|
||||
background-color: #F08496
|
||||
}
|
||||
|
||||
.tablecell-na {
|
||||
background-color: #F0F0F0
|
||||
}
|
||||
|
||||
.tablecell-planned, .tablecell-yes2 {
|
||||
background-color: #92E8DF
|
||||
}
|
||||
|
||||
.tablecell-partial {
|
||||
background-color: #EDE8A4
|
||||
}
|
||||
|
||||
.tablecell-special {
|
||||
background-color: #DCB1FC
|
||||
}
|
||||
|
||||
.tablecell-caveats {
|
||||
background-color: #F0C884
|
||||
}
|
||||
|
||||
.tablecell-caveats2 {
|
||||
background-color: #ED9A80
|
||||
}
|
||||
|
||||
.tablecell-no-padding {
|
||||
padding: initial;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table><tr>
|
||||
<th scope="col">Channel Mode / IRCd</th>
|
||||
<th scope="col">RFC 1459</th>
|
||||
<th scope="col">InspIRCd</th>
|
||||
<th scope="col">charybdis</th>
|
||||
<th scope="col">Elemental-IRCd</th>
|
||||
<th scope="col">ChatIRCd</th>
|
||||
<th scope="col">UnrealIRCd</th>
|
||||
<th scope="col">Nefarious</th>
|
||||
<th scope="col">snircd</th>
|
||||
<th scope="col">IRCu</th>
|
||||
<th scope="col">ircd-ratbox</th>
|
||||
<th scope="col">IRCd-Hybrid</th>
|
||||
<th scope="col">ngIRCd</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">admin</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+a<br><span class="note">(m_customprefix, m_chanprotect)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-special">+a<br><span class="note">(when enabled)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">adminonly</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-special">+A<br><span class="note">(ext/chm_adminonly)</span></td><td class="tablecell-special">+A<br><span class="note">(ext/chm_adminonly.so)</span></td><td class="tablecell-special">+A<br><span class="note">(ext/chm_adminonly)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">allowinvite</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+A<br><span class="note">(m_allowinvite)</span></td><td class="tablecell-yes">+g</td><td class="tablecell-yes">+g</td><td class="tablecell-yes">+g</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">autoop</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+w<br><span class="note">(m_autoop)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">ban</th>
|
||||
<td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td></tr>
|
||||
<tr>
|
||||
<th scope="row">banexception</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+e<br><span class="note">(m_banexception)</span></td><td class="tablecell-yes">+e</td><td class="tablecell-yes">+e</td><td class="tablecell-yes">+e</td><td class="tablecell-yes">+e</td><td class="tablecell-yes">+e</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+e</td><td class="tablecell-yes">+e</td><td class="tablecell-yes">+e</td></tr>
|
||||
<tr>
|
||||
<th scope="row">blockcaps</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+B<br><span class="note">(m_blockcaps)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-special">+G<br><span class="note">(ext/chm_nocaps.so)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">blockcolor</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+c<br><span class="note">(m_blockcolor)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+c</td><td class="tablecell-yes">+c</td><td class="tablecell-yes">+c</td><td class="tablecell-yes">+c</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+c</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">delayjoin</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+D</td><td class="tablecell-yes">+D</td><td class="tablecell-yes">+D</td><td class="tablecell-yes">+D</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">exemptchanops</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+X<br><span class="note">(m_exemptchanops)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">filter</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+g<br><span class="note">(m_filter)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">flood</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+f<br><span class="note">(m_messageflood)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">flood_unreal</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+f</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">freetarget</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+F</td><td class="tablecell-yes">+F</td><td class="tablecell-yes">+F</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">had_delayjoin</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+d</td><td class="tablecell-yes">+d</td><td class="tablecell-yes">+d</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">halfop</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+h<br><span class="note">(m_customprefix, m_halfop)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-special">+h<br><span class="note">(when enabled)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+h</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+h</td><td class="tablecell-yes">+h</td></tr>
|
||||
<tr>
|
||||
<th scope="row">hiddenbans</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+u</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">hidequits</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+Q</td><td class="tablecell-yes">+u</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">history</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+H<br><span class="note">(m_chanhistory)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">invex</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+I<br><span class="note">(m_inviteexception)</span></td><td class="tablecell-yes">+I</td><td class="tablecell-yes">+I</td><td class="tablecell-yes">+I</td><td class="tablecell-yes">+I</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+I</td><td class="tablecell-yes">+I</td><td class="tablecell-yes">+I</td></tr>
|
||||
<tr>
|
||||
<th scope="row">inviteonly</th>
|
||||
<td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td></tr>
|
||||
<tr>
|
||||
<th scope="row">issecure</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+Z</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">joinflood</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+j<br><span class="note">(m_joinflood)</span></td><td class="tablecell-yes">+j</td><td class="tablecell-yes">+j</td><td class="tablecell-yes">+j</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">key</th>
|
||||
<td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td></tr>
|
||||
<tr>
|
||||
<th scope="row">kicknorejoin</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+J<br><span class="note">(m_kicknorejoin)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+J</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">largebanlist</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+L</td><td class="tablecell-yes">+L</td><td class="tablecell-yes">+L</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">limit</th>
|
||||
<td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td></tr>
|
||||
<tr>
|
||||
<th scope="row">moderated</th>
|
||||
<td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td><td class="tablecell-yes">+m</td></tr>
|
||||
<tr>
|
||||
<th scope="row">netadminonly</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-special">+N<br><span class="note">(ext/chm_netadminonly)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">nickflood</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+F<br><span class="note">(m_nickflood)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">noamsg</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+T</td><td class="tablecell-yes">+T</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">noctcp</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+C<br><span class="note">(m_noctcp)</span></td><td class="tablecell-yes">+C</td><td class="tablecell-yes">+C</td><td class="tablecell-yes">+C</td><td class="tablecell-yes">+C</td><td class="tablecell-yes">+C</td><td class="tablecell-yes">+C</td><td class="tablecell-yes">+C</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+C</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">noextmsg</th>
|
||||
<td class="tablecell-yes">+n</td><td class="tablecell-yes">+n</td><td class="tablecell-yes">+n</td><td class="tablecell-yes">+n</td><td class="tablecell-yes">+n</td><td class="tablecell-yes">+n</td><td class="tablecell-yes">+n</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+n</td><td class="tablecell-yes">+n</td><td class="tablecell-yes">+n</td></tr>
|
||||
<tr>
|
||||
<th scope="row">noforwards</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+Q</td><td class="tablecell-yes">+Q</td><td class="tablecell-yes">+Q</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">noinvite</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+V</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+V</td></tr>
|
||||
<tr>
|
||||
<th scope="row">nokick</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+Q<br><span class="note">(m_nokicks)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+E</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+Q</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+Q</td></tr>
|
||||
<tr>
|
||||
<th scope="row">noknock</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+K<br><span class="note">(m_knock)</span></td><td class="tablecell-yes2">+p*</td><td class="tablecell-yes2">+p*</td><td class="tablecell-yes2">+p*</td><td class="tablecell-yes">+K</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes2">+p*</td><td class="tablecell-yes2">+p*</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">nonick</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+N<br><span class="note">(m_nonicks)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+d</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+N</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+N</td></tr>
|
||||
<tr>
|
||||
<th scope="row">nonotice</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+T<br><span class="note">(m_nonotice)</span></td><td class="tablecell-special">+T<br><span class="note">(ext/chm_nonotice)</span></td><td class="tablecell-yes">+T</td><td class="tablecell-special">+T<br><span class="note">(ext/chm_nonotice)</span></td><td class="tablecell-yes">+T</td><td class="tablecell-yes">+N</td><td class="tablecell-yes">+N</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">official-join</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+Y<br><span class="note">(m_ojoin)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">op</th>
|
||||
<td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td></tr>
|
||||
<tr>
|
||||
<th scope="row">operonly</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+O<br><span class="note">(m_operchans)</span></td><td class="tablecell-special">+O<br><span class="note">(ext/chm_operonly)</span></td><td class="tablecell-special">+O<br><span class="note">(ext/chm_operonly.so)</span></td><td class="tablecell-special">+O<br><span class="note">(ext/chm_operonly)</span></td><td class="tablecell-yes">+O</td><td class="tablecell-yes">+O</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+O</td><td class="tablecell-yes">+O</td></tr>
|
||||
<tr>
|
||||
<th scope="row">oplevel_apass</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+A</td><td class="tablecell-yes">+A</td><td class="tablecell-yes">+A</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">oplevel_upass</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+U</td><td class="tablecell-yes">+U</td><td class="tablecell-yes">+U</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">opmoderated</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+U<br><span class="note">(extras/m_opmoderated)</span></td><td class="tablecell-yes">+z</td><td class="tablecell-yes">+z</td><td class="tablecell-yes">+z</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">owner</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+q<br><span class="note">(m_customprefix, m_chanprotect)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-special">+y<br><span class="note">(when enabled)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+q</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+q</td></tr>
|
||||
<tr>
|
||||
<th scope="row">paranoia</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes2">+p*</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">permanent</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+P<br><span class="note">(m_permchannels)</span></td><td class="tablecell-yes">+P</td><td class="tablecell-yes">+P</td><td class="tablecell-yes">+P</td><td class="tablecell-yes">+P</td><td class="tablecell-yes">+z</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+P</td></tr>
|
||||
<tr>
|
||||
<th scope="row">private</th>
|
||||
<td class="tablecell-yes">+p</td><td class="tablecell-yes">+p</td><td class="tablecell-yes2">+p*</td><td class="tablecell-yes2">+p*</td><td class="tablecell-yes2">+p*</td><td class="tablecell-yes">+p</td><td class="tablecell-yes">+p</td><td class="tablecell-yes">+p</td><td class="tablecell-yes">+p</td><td class="tablecell-yes2">+p*</td><td class="tablecell-yes2">+p*</td><td class="tablecell-yes">+p</td></tr>
|
||||
<tr>
|
||||
<th scope="row">quiet</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+q</td><td class="tablecell-yes">+q</td><td class="tablecell-yes">+q</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">redirect</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+L<br><span class="note">(m_redirect)</span></td><td class="tablecell-yes">+f</td><td class="tablecell-yes">+f</td><td class="tablecell-yes">+f</td><td class="tablecell-yes">+L</td><td class="tablecell-yes">+L</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">registered</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+r<br><span class="note">(m_services_account)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+R</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td></tr>
|
||||
<tr>
|
||||
<th scope="row">regmoderated</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+M<br><span class="note">(m_services_account)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+M</td><td class="tablecell-yes">+M</td><td class="tablecell-yes">+M</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+M</td><td class="tablecell-yes">+M</td></tr>
|
||||
<tr>
|
||||
<th scope="row">regonly</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+R<br><span class="note">(m_services_account)</span></td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+R</td></tr>
|
||||
<tr>
|
||||
<th scope="row">repeat</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+E<br><span class="note">(m_repeat)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-special">+K<br><span class="note">(ext/chm_norepeat.c)</span></td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">secret</th>
|
||||
<td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sslonly</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+z<br><span class="note">(m_sslmodes)</span></td><td class="tablecell-special">+S<br><span class="note">(ext/chm_sslonly)</span></td><td class="tablecell-special">+S<br><span class="note">(ext/chm_sslonly.c)</span></td><td class="tablecell-special">+S<br><span class="note">(ext/chm_sslonly)</span></td><td class="tablecell-yes">+z</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+S</td><td class="tablecell-yes">+S</td><td class="tablecell-yes">+z</td></tr>
|
||||
<tr>
|
||||
<th scope="row">stripcolor</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-special">+S<br><span class="note">(m_stripcolor)</span></td><td class="tablecell-yes">+c</td><td class="tablecell-yes">+c</td><td class="tablecell-yes">+c</td><td class="tablecell-yes">+S</td><td class="tablecell-yes">+S</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">topiclock</th>
|
||||
<td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td><td class="tablecell-yes">+t</td></tr>
|
||||
<tr>
|
||||
<th scope="row">voice</th>
|
||||
<td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td><td class="tablecell-yes">+v</td></tr>
|
||||
<p>* Mode +p corresponds to both “noknock” and “private” on TS6 IRCds, as well as “paranoia” on hybrid.</p>
|
||||
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
146
docs/modelists/modelists-genhtml.py
Executable file
146
docs/modelists/modelists-genhtml.py
Executable file
@ -0,0 +1,146 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Generates HTML versions of the mode list .csv definitions.
|
||||
"""
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import csv
|
||||
|
||||
os.chdir(os.path.dirname(__file__))
|
||||
|
||||
FILES = {
|
||||
'user-modes.csv': 'Supported User Modes for PyLink',
|
||||
'channel-modes.csv': 'Supported Channel Modes for PyLink'
|
||||
}
|
||||
|
||||
def _write(outf, text):
|
||||
print(text, end='')
|
||||
outf.write(text)
|
||||
|
||||
for fname, title in FILES.items():
|
||||
outfname = os.path.splitext(fname)[0] + '.html'
|
||||
print('Generating HTML for %s to %s:' % (fname, outfname))
|
||||
with open(fname) as csvfile:
|
||||
csvdata = csv.reader(csvfile)
|
||||
|
||||
with open(outfname, 'w') as outf:
|
||||
# CSS in HTML in Python, how lovely...
|
||||
_write(outf, """
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<meta name=viewport content="width=device-width, initial-scale=1">
|
||||
|
||||
<head>
|
||||
<title>%s</title>
|
||||
<style>
|
||||
|
||||
html {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.note {
|
||||
color: #555555;
|
||||
}
|
||||
|
||||
/* (╮°-°)╮┳━┳ */
|
||||
table, th, td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
td, th {
|
||||
text-align: center;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
td:first-child, th[scope="row"] {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Table cells */
|
||||
.tablecell-yes {
|
||||
background-color: #A7F2A5
|
||||
}
|
||||
|
||||
.tablecell-no {
|
||||
background-color: #F08496
|
||||
}
|
||||
|
||||
.tablecell-na {
|
||||
background-color: #F0F0F0
|
||||
}
|
||||
|
||||
.tablecell-planned, .tablecell-yes2 {
|
||||
background-color: #92E8DF
|
||||
}
|
||||
|
||||
.tablecell-partial {
|
||||
background-color: #EDE8A4
|
||||
}
|
||||
|
||||
.tablecell-special {
|
||||
background-color: #DCB1FC
|
||||
}
|
||||
|
||||
.tablecell-caveats {
|
||||
background-color: #F0C884
|
||||
}
|
||||
|
||||
.tablecell-caveats2 {
|
||||
background-color: #ED9A80
|
||||
}
|
||||
|
||||
.tablecell-no-padding {
|
||||
padding: initial;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table>""" % title)
|
||||
notes = False
|
||||
for idx, row in enumerate(csvdata):
|
||||
if not any(row): # Empty row
|
||||
continue
|
||||
elif row[0] == '----':
|
||||
notes = True
|
||||
continue
|
||||
|
||||
if notes:
|
||||
_write(outf, "<p>%s</p>" % row[0])
|
||||
continue
|
||||
|
||||
_write(outf, "<tr>\n")
|
||||
for colidx, coltext in enumerate(row):
|
||||
if idx == 0:
|
||||
text = '<th scope="col">%s</th>\n' % coltext
|
||||
elif colidx == 0:
|
||||
text = '<th scope="row">%s</th>\n' % coltext
|
||||
else:
|
||||
# More formatting
|
||||
if coltext:
|
||||
coltext = '+' + coltext
|
||||
|
||||
try:
|
||||
coltext, note = coltext.split(' ', 1)
|
||||
except ValueError:
|
||||
if coltext.endswith('*'):
|
||||
text = '<td class="tablecell-yes2">%s</td>' % coltext
|
||||
else:
|
||||
text = '<td class="tablecell-yes">%s</td>' % coltext
|
||||
else:
|
||||
coltext = '%s<br><span class="note">%s</span>' % (coltext, note)
|
||||
text = '<td class="tablecell-special">%s</td>' % coltext
|
||||
else:
|
||||
text = '<td class="tablecell-na note">n/a</td>'
|
||||
|
||||
_write(outf, text)
|
||||
|
||||
_write(outf, "</tr>\n")
|
||||
_write(outf, """
|
||||
|
||||
</table>
|
||||
</body>
|
||||
</html>""")
|
54
docs/modelists/user-modes.csv
Normal file
54
docs/modelists/user-modes.csv
Normal file
@ -0,0 +1,54 @@
|
||||
User Mode / IRCd,RFC 1459,InspIRCd,charybdis,Elemental-IRCd,ChatIRCd,UnrealIRCd,Nefarious,snircd,IRCu,IRCd-Hybrid,ircd-ratbox,ngIRCd
|
||||
admin,,,a,a,a,,a,,,a,a,
|
||||
away,,,,,,,,,,,,a
|
||||
bot,,B,,B,B,B,B,,,,,B
|
||||
callerid,,g,g,g,g,,,,,g,g,
|
||||
callerid_sslonly,,,,,t,,,,,,,
|
||||
cloak,,x,x,x,x,x,x,x,x,x,,x
|
||||
cloak_fakehost,,,,,,,f,,,,,
|
||||
cloak_hashedhost,,,,,,,C,,,,,
|
||||
cloak_hashedip,,,,,,,c,,,,,
|
||||
cloak_sethost,,,,,,,h,h,,,,
|
||||
deaf,,d,D,D,D,d,d,d,d,D,D,b
|
||||
deaf_commonchan,,c,,,,,q,,,G,,C
|
||||
debug,,,,,,,,,,d,,
|
||||
filter,,,,,,G,,,,,,
|
||||
floodexempt,,,,,,,,,,,,f
|
||||
helpop,,h,,,,,,,,,,
|
||||
hidechans,,I,,I,,p,n,n,,p,,I
|
||||
hideidle,,,,,,I,I,I,,q,,
|
||||
hideoper,,H,,,,H,H,,,H,,
|
||||
invisible,i,i,i,i,i,i,i,i,i,i,i,i
|
||||
locops,,,l,l,l,,O,O,O,l,l,
|
||||
netadmin,,,,,N,,,,,,,
|
||||
noctcp,,,,C,,T,,,,,,
|
||||
noforward,,,Q,Q,Q,,L,,,,,
|
||||
noinvite,,,,V,,,,,,,,
|
||||
oper,o,o,o,o,o,o,o,o,o,o,o,o
|
||||
operwall,,,z,z,z,,,,,,z,
|
||||
override,,,p,p,p,,X,X,,,,
|
||||
privdeaf,,,,,,,D,,,,,
|
||||
protected,,,,,,q,,,,,,
|
||||
regdeaf,,R,R,R,R,R,R,R,,R,,
|
||||
registered,,r,,,,r,r,r,r,r,,R
|
||||
restricted,,,,,,,,,,,,r
|
||||
servprotect,,k,S,S,S,S,k,k,k,,S,q
|
||||
showwhois,,W,,,,W,W,,,,,
|
||||
sno_badclientconnections,,,,,,,,,,u,u,
|
||||
sno_botfloods,,,,,,,,,,b,b,
|
||||
sno_clientconnections,,,,,,,,,,c,c,c
|
||||
sno_debug,,,,,,,g,g,g,,d,
|
||||
sno_extclientconnections,,,,,,,,,,,C,
|
||||
sno_fullauthblock,,,,,,,,,,f,f,
|
||||
sno_nickchange,,,,,,,,,,n,,
|
||||
sno_rejectedclients,,,,,,,,,,j,r,
|
||||
sno_remoteclientconnections,,,,,,,,,,F,,
|
||||
sno_serverconnects,,,,,,,,,,e,x,
|
||||
sno_skill,,,,,,,,,,k,k,
|
||||
sno_stats,,,,,,,,,,y,y,
|
||||
snomask,s,s,s,s,s,s,s,,,s,s,s
|
||||
ssl,,,,,,z,z,,,S,,
|
||||
stripcolor,,S,,,,,,,,,,
|
||||
vhost,,,,,,t,,,,,,
|
||||
wallops,w,w,w,w,w,w,w,,,w,w,w
|
||||
webirc,,,,,,,,,,W,,
|
|
252
docs/modelists/user-modes.html
Normal file
252
docs/modelists/user-modes.html
Normal file
@ -0,0 +1,252 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<meta name=viewport content="width=device-width, initial-scale=1">
|
||||
|
||||
<head>
|
||||
<title>Supported User Modes for PyLink</title>
|
||||
<style>
|
||||
|
||||
html {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.note {
|
||||
color: #555555;
|
||||
}
|
||||
|
||||
/* (╮°-°)╮┳━┳ */
|
||||
table, th, td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
td, th {
|
||||
text-align: center;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
td:first-child, th[scope="row"] {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Table cells */
|
||||
.tablecell-yes {
|
||||
background-color: #A7F2A5
|
||||
}
|
||||
|
||||
.tablecell-no {
|
||||
background-color: #F08496
|
||||
}
|
||||
|
||||
.tablecell-na {
|
||||
background-color: #F0F0F0
|
||||
}
|
||||
|
||||
.tablecell-planned, .tablecell-yes2 {
|
||||
background-color: #92E8DF
|
||||
}
|
||||
|
||||
.tablecell-partial {
|
||||
background-color: #EDE8A4
|
||||
}
|
||||
|
||||
.tablecell-special {
|
||||
background-color: #DCB1FC
|
||||
}
|
||||
|
||||
.tablecell-caveats {
|
||||
background-color: #F0C884
|
||||
}
|
||||
|
||||
.tablecell-caveats2 {
|
||||
background-color: #ED9A80
|
||||
}
|
||||
|
||||
.tablecell-no-padding {
|
||||
padding: initial;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table><tr>
|
||||
<th scope="col">User Mode / IRCd</th>
|
||||
<th scope="col">RFC 1459</th>
|
||||
<th scope="col">InspIRCd</th>
|
||||
<th scope="col">charybdis</th>
|
||||
<th scope="col">Elemental-IRCd</th>
|
||||
<th scope="col">ChatIRCd</th>
|
||||
<th scope="col">UnrealIRCd</th>
|
||||
<th scope="col">Nefarious</th>
|
||||
<th scope="col">snircd</th>
|
||||
<th scope="col">IRCu</th>
|
||||
<th scope="col">IRCd-Hybrid</th>
|
||||
<th scope="col">ircd-ratbox</th>
|
||||
<th scope="col">ngIRCd</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">admin</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+a</td><td class="tablecell-yes">+a</td><td class="tablecell-yes">+a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+a</td><td class="tablecell-yes">+a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">away</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">bot</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+B</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+B</td><td class="tablecell-yes">+B</td><td class="tablecell-yes">+B</td><td class="tablecell-yes">+B</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+B</td></tr>
|
||||
<tr>
|
||||
<th scope="row">callerid</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+g</td><td class="tablecell-yes">+g</td><td class="tablecell-yes">+g</td><td class="tablecell-yes">+g</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+g</td><td class="tablecell-yes">+g</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">callerid_sslonly</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+t</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">cloak</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+x</td><td class="tablecell-yes">+x</td><td class="tablecell-yes">+x</td><td class="tablecell-yes">+x</td><td class="tablecell-yes">+x</td><td class="tablecell-yes">+x</td><td class="tablecell-yes">+x</td><td class="tablecell-yes">+x</td><td class="tablecell-yes">+x</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+x</td></tr>
|
||||
<tr>
|
||||
<th scope="row">cloak_fakehost</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+f</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">cloak_hashedhost</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+C</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">cloak_hashedip</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+c</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">cloak_sethost</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+h</td><td class="tablecell-yes">+h</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">deaf</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+d</td><td class="tablecell-yes">+D</td><td class="tablecell-yes">+D</td><td class="tablecell-yes">+D</td><td class="tablecell-yes">+d</td><td class="tablecell-yes">+d</td><td class="tablecell-yes">+d</td><td class="tablecell-yes">+d</td><td class="tablecell-yes">+D</td><td class="tablecell-yes">+D</td><td class="tablecell-yes">+b</td></tr>
|
||||
<tr>
|
||||
<th scope="row">deaf_commonchan</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+c</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+q</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+G</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+C</td></tr>
|
||||
<tr>
|
||||
<th scope="row">debug</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+d</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">filter</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+G</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">floodexempt</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+f</td></tr>
|
||||
<tr>
|
||||
<th scope="row">helpop</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+h</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">hidechans</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+I</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+I</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+p</td><td class="tablecell-yes">+n</td><td class="tablecell-yes">+n</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+p</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+I</td></tr>
|
||||
<tr>
|
||||
<th scope="row">hideidle</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+I</td><td class="tablecell-yes">+I</td><td class="tablecell-yes">+I</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+q</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">hideoper</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+H</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+H</td><td class="tablecell-yes">+H</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+H</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">invisible</th>
|
||||
<td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td><td class="tablecell-yes">+i</td></tr>
|
||||
<tr>
|
||||
<th scope="row">locops</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+O</td><td class="tablecell-yes">+O</td><td class="tablecell-yes">+O</td><td class="tablecell-yes">+l</td><td class="tablecell-yes">+l</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">netadmin</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+N</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">noctcp</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+C</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+T</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">noforward</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+Q</td><td class="tablecell-yes">+Q</td><td class="tablecell-yes">+Q</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+L</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">noinvite</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+V</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">oper</th>
|
||||
<td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td><td class="tablecell-yes">+o</td></tr>
|
||||
<tr>
|
||||
<th scope="row">operwall</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+z</td><td class="tablecell-yes">+z</td><td class="tablecell-yes">+z</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+z</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">override</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+p</td><td class="tablecell-yes">+p</td><td class="tablecell-yes">+p</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+X</td><td class="tablecell-yes">+X</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">privdeaf</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+D</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">protected</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+q</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">regdeaf</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+R</td><td class="tablecell-yes">+R</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+R</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">registered</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+r</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td><td class="tablecell-yes">+r</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+R</td></tr>
|
||||
<tr>
|
||||
<th scope="row">restricted</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+r</td></tr>
|
||||
<tr>
|
||||
<th scope="row">servprotect</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+S</td><td class="tablecell-yes">+S</td><td class="tablecell-yes">+S</td><td class="tablecell-yes">+S</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+S</td><td class="tablecell-yes">+q</td></tr>
|
||||
<tr>
|
||||
<th scope="row">showwhois</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+W</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+W</td><td class="tablecell-yes">+W</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_badclientconnections</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+u</td><td class="tablecell-yes">+u</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_botfloods</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+b</td><td class="tablecell-yes">+b</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_clientconnections</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+c</td><td class="tablecell-yes">+c</td><td class="tablecell-yes">+c</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_debug</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+g</td><td class="tablecell-yes">+g</td><td class="tablecell-yes">+g</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+d</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_extclientconnections</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+C</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_fullauthblock</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+f</td><td class="tablecell-yes">+f</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_nickchange</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+n</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_rejectedclients</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+j</td><td class="tablecell-yes">+r</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_remoteclientconnections</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+F</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_serverconnects</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+e</td><td class="tablecell-yes">+x</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_skill</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+k</td><td class="tablecell-yes">+k</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">sno_stats</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+y</td><td class="tablecell-yes">+y</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">snomask</th>
|
||||
<td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td><td class="tablecell-yes">+s</td></tr>
|
||||
<tr>
|
||||
<th scope="row">ssl</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+z</td><td class="tablecell-yes">+z</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+S</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">stripcolor</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-yes">+S</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">vhost</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+t</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
<tr>
|
||||
<th scope="row">wallops</th>
|
||||
<td class="tablecell-yes">+w</td><td class="tablecell-yes">+w</td><td class="tablecell-yes">+w</td><td class="tablecell-yes">+w</td><td class="tablecell-yes">+w</td><td class="tablecell-yes">+w</td><td class="tablecell-yes">+w</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+w</td><td class="tablecell-yes">+w</td><td class="tablecell-yes">+w</td></tr>
|
||||
<tr>
|
||||
<th scope="row">webirc</th>
|
||||
<td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td><td class="tablecell-yes">+W</td><td class="tablecell-na note">n/a</td><td class="tablecell-na note">n/a</td></tr>
|
||||
|
||||
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
@ -20,8 +20,8 @@ PyLink is an a modular, plugin-based IRC services framework. It uses swappable p
|
||||
----
|
||||
|
||||
- [PyLink protocol module specification](pmodule-spec.md)
|
||||
- [Supported named channel modes](channel-modes.csv)
|
||||
- [Supported named user modes](user-modes.csv)
|
||||
- [Supported named channel modes](../modelists/channel-modes.csv)
|
||||
- [Supported named user modes](../modelists/user-modes.csv)
|
||||
|
||||
----
|
||||
|
||||
|
@ -1,60 +0,0 @@
|
||||
Channel Mode / IRCd,RFC1459,InspIRCd,charybdis,Elemental-IRCd,UnrealIRCd,IRCd-Hybrid,Nefarious IRCu,ircd-ratbox,snircd,IRCu,ngIRCd
|
||||
admin,,a (m_customprefix/m_chanprotect),,a (when enabled),a,,,,,,
|
||||
adminonly,,,A (extensions/chm_adminonly),A (extensions/chm_adminonly.c),,,a,,,,
|
||||
allowinvite,,A (m_allowinvite),g,g,,,,,,,
|
||||
autoop,,w (m_autoop),,,,,,,,,
|
||||
ban,b,b,b,b,b,b,b,b,b,b,b
|
||||
banexception,,e (m_banexception),e,e,e,e,e,e,,,e
|
||||
blockcaps,,B (m_blockcaps),,G (extensions/chm_nocaps.c),,,,,,,
|
||||
blockcolor,,c (m_blockcolor),,,c,c,c,,c,c,
|
||||
delayjoin,,,,,D,,D,,D,D,
|
||||
exemptchanops,,X (m_exemptchanops),,,,,,,,,
|
||||
filter,,g (m_filter),,,,,,,,,
|
||||
flood,,f (m_messageflood),,,,,,,,,
|
||||
flood_unreal,,,,,f,,,,,,
|
||||
freetarget,,,F,F,,,,,,,
|
||||
had_delayjoin,,,,,,,d,,d,d,
|
||||
halfop,,h (m_customprefix/m_halfop),,h (when enabled),h,h,,,,,
|
||||
hiddenbans,,,,u,,,,,,,
|
||||
hidequits,,,,,,,Q,,u,,
|
||||
history,,H (m_chanhistory),,,,,,,,,
|
||||
invex,,I (m_inviteexception),I,I,I,I,,I,,,I
|
||||
inviteonly,i,i,i,i,i,i,i,i,i,i,i
|
||||
issecure,,,,,Z,,,,,,
|
||||
joinflood,,j (m_joinflood),j,j,,,,,,,
|
||||
key,k,k,k,k,k,k,k,k,k,k,k
|
||||
kicknorejoin,,J (m_kicknorejoin),,J,,,,,,,
|
||||
largebanlist,,,L,L,,,,,,,
|
||||
limit,l,l,l,l,l,l,l,l,l,l,l
|
||||
moderated,m,m,m,m,m,m,m,m,m,m,m
|
||||
nickflood,,F (m_nickflood),,,,,,,,,
|
||||
noamsg,,,,,,,T,,T,,
|
||||
noctcp,,C (m_noctcp),C,C,C,C,C,,C,C,
|
||||
noextmsg,n,n,n,n,n,n,n,n,,,n
|
||||
noforwards,,,Q,Q,,,,,,,
|
||||
noinvite,,,,,V,,,,,,V
|
||||
nokick,,Q (m_nokicks),,E,Q,,,,,,Q
|
||||
noknock,,K (m_knock),p,,K,p,,,,,
|
||||
nonick,,N (m_nonicks),,d,N,,,,,,N
|
||||
nonotice,,T (m_nonotice),T (extensions/chm_nonotice),T,T,,N,,N,,
|
||||
official-join,,Y (m_ojoin),,,,,,,,,
|
||||
op,o,o,o,o,o,o,o,o,o,o,o
|
||||
operonly,,O (m_operchans),O (extensions/chm_operonly),O (extensions/chm_operonly.c),O,O,O,,,,O
|
||||
oplevel_apass,,,,,,,A,,A,A,
|
||||
oplevel_upass,,,,,,,U,,U,U,
|
||||
opmoderated,,U (extras/m_opmoderated),z,z,,,,,,,
|
||||
owner,,q (m_customprefix/m_chanprotect),,y (when enabled),q,,,,,,
|
||||
paranoia,,,,,,p,,,,,
|
||||
permanent,,P (m_permchannels),P,P,P,,z,,,,P
|
||||
private,p,p,,,p,,p,,p,p,p
|
||||
quiet,,,q,q,,,,,,,
|
||||
redirect,,L (m_redirect),f,f,L,,L,,,,
|
||||
registered,,r (m_services_account),,,r,r,R,,R,R,r
|
||||
regmoderated,,M (m_services_account),,,M,M,M,,M,,M
|
||||
regonly,,R (m_services_account),r,r,R,R,r,r,r,r,R
|
||||
repeat,,E (m_repeat),,K (extensions/chm_norepeat.c),,,,,,,
|
||||
secret,s,s,s,s,s,s,s,s,s,s,s
|
||||
sslonly,,z (m_sslmodes),S (extensions/chm_sslonly),S (extensions/chm_sslonly.c),z,S,,S,,,z
|
||||
stripcolor,,S (m_stripcolor),c,c,S,,S,,,,
|
||||
topiclock,t,t,t,t,t,t,t,t,t,t,t
|
||||
voice,v,v,v,v,v,v,v,v,v,v,v
|
|
@ -1,52 +0,0 @@
|
||||
User Mode / IRCd,RFC1459,InspIRCd,charybdis,Elemental-IRCd,UnrealIRCd,IRCd-Hybrid,Nefarious IRCu,ircd-ratbox,snircd,IRCu,ngIRCd
|
||||
admin,,,a,a,,a,a,a,,,
|
||||
away,,,,,,,,,,,a
|
||||
bot,,B,,B,B,,B,,,,B
|
||||
callerid,,g,g,g,,g,,g,,,
|
||||
cloak,,x,x,x,x,x,x,,x,x,x
|
||||
cloak_fakehost,,,,,,,f,,,,
|
||||
cloak_hashedhost,,,,,,,C,,,,
|
||||
cloak_hashedip,,,,,,,c,,,,
|
||||
cloak_sethost,,,,,,,h,,h,,
|
||||
deaf,,d,D,D,d,D,d,D,d,d,b
|
||||
deaf_commonchan,,c,,,,G,q,,,,C
|
||||
debug,,,,,,d,,,,,
|
||||
filter,,,,,G,,,,,,
|
||||
floodexempt,,,,,,,,,,,f
|
||||
helpop,,h,,,,,,,,,
|
||||
hidechans,,I,,I,p,p,n,,n,,I
|
||||
hideidle,,,,,I,q,I,,I,,
|
||||
hideoper,,H,,,H,H,H,,,,
|
||||
invisible,i,i,i,i,i,i,i,i,i,i,i
|
||||
locops,,,l,l,,l,O,l,O,O,
|
||||
noctcp,,,,C,T,,,,,,
|
||||
noforward,,,Q,Q,,,L,,,,
|
||||
noinvite,,,,V,,,,,,,
|
||||
oper,o,o,o,o,o,o,o,o,o,o,o
|
||||
operwall,,,z,z,,,,z,,,
|
||||
override,,,p,p,,,X,,X,,
|
||||
privdeaf,,,,,,,D,,,,
|
||||
protected,,,,,q,,,,,,
|
||||
regdeaf,,R,R,R,R,R,R,,R,,
|
||||
registered,,r,,,r,r,r,,r,r,R
|
||||
restricted,,,,,,,,,,,r
|
||||
servprotect,,k,S,S,S,,k,S,k,k,q
|
||||
showwhois,,W,,,W,,W,,,,
|
||||
sno_badclientconnections,,,,,,u,,u,,,
|
||||
sno_botfloods,,,,,,b,,b,,,
|
||||
sno_clientconnections,,,,,,c,,c,,,c
|
||||
sno_debug,,,,,,,g,d,g,g,
|
||||
sno_extclientconnections,,,,,,,,C,,,
|
||||
sno_fullauthblock,,,,,,f,,f,,,
|
||||
sno_nickchange,,,,,,n,,,,,
|
||||
sno_rejectedclients,,,,,,j,,r,,,
|
||||
sno_remoteclientconnections,,,,,,F,,,,,
|
||||
sno_serverconnects,,,,,,e,,x,,,
|
||||
sno_skill,,,,,,k,,k,,,
|
||||
sno_stats,,,,,,y,,y,,,
|
||||
snomask,s,s,s,s,s,s,s,s,,,s
|
||||
ssl,,,,,z,S,z,,,,
|
||||
stripcolor,,S,,,,,,,,,
|
||||
vhost,,,,,t,,,,,,
|
||||
wallops,w,w,w,w,w,w,w,w,,,w
|
||||
webirc,,,,,,W,,,,,
|
|
Loading…
Reference in New Issue
Block a user