To create new wiki account, please join us on #znc at Libera.Chat and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.

Modules and Template:Providers/table: Difference between pages

From ZNC
(Difference between pages)
Jump to navigation Jump to search
m Reverted edits by 183.181.16.189 (talk) to last revision by 23.92.28.23
 
m removed bncfor.me at owners request
 
Line 1: Line 1:
{{Languages}}
<noinclude>
 
<!--
== Overview ==
======================================================================
'''Modules''' are used to extend and modify the way ZNC functions. Users interact with modules most commonly by messaging a special user on IRC. For example, to view the highlight keywords in your watch list, you'd send ''/msg *watch list''. When ZNC sees that the nick you're messaging starts with an asterisk, it doesn't forward the message to the IRCd/server but instead sends it to the proper module for processing. In this case, the watch module will get the message and reply to you with a listing of your keywords. This makes for a very convenient and standard way of configuring or otherwise communicating with your loaded modules, as well as a common and standard way for your loaded modules to display status or other information. Notice that this is for loaded modules. You must load a given module, for example ''/znc loadmod watch'', before you can interface with the watch module. Most modules will reply to ''/msg *module help'' with a listing of available commands.
For location codes, please refer to https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
 
Use exceptions, most notably UK instead of GB, listed here https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Exceptional_reservations
ZNC modules are loaded either '''globally''', '''per-network''', or on a '''per-user''' basis. Each module defines for itself whether it is available to load as global, network-specific and/or user-specific. User level and network modules can do things ranging from [[crypt|manipulating the incoming/outgoing messages]] to [[twitter|implementing a full blown Twitter client]]. They can also do more traditional IRC tasks such as [[autoop|challenge based auto-op]], [[simple_away|setting you away]], or [[log|logging to disk]]. Each user gets to load and configure their own set of modules to customize their experience to suit their preference.
======================================================================  
 
Providers are sorted by "Date Started", which is either the date in which the provider officially started delivering services, the date
Global modules are loadable by admins and provide functionality or change behavior for all users. For example, the [[partyline]] module has to be global since it provides functionality for all users on a given ZNC instance to be able to communicate with each other from within ZNC itself. Global modules can do everything that user-level modules can do, as well as a few extras. They can replace ZNC's [[imapauth|authentication system]], modify the config-writing process, deal with CAP, etc.
their domain was registered (if reliable information), or the date added to the ZNC table list.
 
-->
The modules can also hook into ZNC's [[WebMods|web interface]] and provide web content. The most common web module is [[webadmin]] which allows admins to add/remove users and allows users to configure their settings from a browser.
</noinclude>[<span class="plain links">[{{fullurl:Template:Providers/table|action=edit}} Edit data]</span>]
 
{| class="wikitable sortable" border="1"
== Developers ==
! rowspan="2" | Provider
ZNC modules are written in C++ natively. There are also a couple of modules that embed an interpreter to allow you to load Perl, Python, or Tcl modules. To learn more about creation of modules you should read [[modperl|Perl Modules]], [[modpython|Python Modules]], [[modtcl|TCL Modules]], or [[Writing modules|C++ Modules]].
! colspan="2" | Max Networks per User
 
! rowspan="2" | ZNC Version
Feel free to create wikipages about modules you have created, but don't forget to add a download link, contact information, and use the same layout as the rest of the modules. Contributions are always much appreciated.
! rowspan="2" | Language
 
! rowspan="2" class="unsortable" | IRC Support
== Module List ==
! rowspan="2" | Date Started
=== Global Modules ===
! rowspan="2" class="unsortable" | ZNC locations<br><small style="font-weight:normal">([[wikipedia:ISO 3166-1 alpha-2#Officially_assigned_code_elements|country codes]], using [[wikipedia:ISO 3166-1 alpha-2#Exceptional_reservations|exceptions]])</small>
; [[adminlog]] : Log user connects, disconnects, and failed logins to a file and/or to syslog.
|-
; [[blockuser]] : Blocks certain users from using ZNC, saying their account was disabled.
! Default
; [[certauth]] : This module lets users to log in via SSL client keys.
! Premium
; [[cyrusauth]] : This module is intended for admins who run a shell/web/email/etc server and want to provide ZNC access to their existing users.
|-
; [[fail2ban]] : Block IPs for some time after a failed login.
|[https://www.xshellz.com xShellz]
; [[identfile]] : Posts the ident of a user to a file when they are trying to connect.
| 2
; [[imapauth]] : Allow users to authenticate via IMAP.
| data-sort-value="30" | 12, 20, or 30
; [[lastseen]] : Logs when a user last logged in to ZNC.
| 1.6.1
; [[modperl]] : Loads Perl scripts as ZNC modules.
| English
; [[modpython]] : Allows you to use modules written on Python.
| {{irc|chat.freenode.net|xShellz}}
; [[notify_connect]] : Sends a notice to all admins when a user logs in or out of ZNC.
| <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2009-03-01
; [[partyline]] : Allows ZNC users to join internal channels and query other ZNC users on the same ZNC.
| <abbr title="United States of America">US</abbr>, <abbr title="United Kingdom">UK</abbr>
; [[cyrusauth|saslauth]] : (Now [[cyrusauth]]) Allows users to authenticate via SASL.
|-
; [[webadmin]] : Allows you to add/remove/edit users and settings on the fly via a web browser.
|[https://panicbnc.net/ PanicBNC]
 
| 2
=== User Modules ===
| unlimited
; [[controlpanel|admin]] : (Now [[controlpanel]]) Allows you to add/remove/edit users and settings on the fly via IRC messages.
| 1.7.1*
; [[autoattach]] : Watches your [[Detaching|detached]] channels and reattaches you automatically when there is specified activity in a channel you added to your autoattach list.
| English
; [[autoreply]] : Gives a automatic reply if someone messages you while you are away.
| {{irc|irc.esper.net|PanicBNC}}
; [[block_motd]] : Blocks the server's Message of the Day.
| <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2012-02-01
; [[bouncedcc]] : Bounces DCC transfers through the znc server instead of sending them directly to the user.
| <abbr title="Australia">AU</abbr>, <abbr title="Canada">CA</abbr>, <abbr title="Germany">DE</abbr>, <abbr title="France">FR</abbr>, <abbr title="Japan">JP</abbr>, <abbr title="Netherlands">NL</abbr>, <abbr title="Poland">PL</abbr>, <abbr title="Singapur">SG</abbr>, <abbr title="United Kingdom">UK</abbr>, <abbr title="United States of America">US</abbr>
; [[buffextras]] : Add nick changes, joins, parts, topic changes etc. to your playback buffer.
|-
; [[chansaver]] : Saves channels to config when user joins and parts.
|[https://znc.bg ZNC.BG]
; [[charset]] : Normalizes (i.e. converts) character encodings.
| 1
; [[clearbufferonmsg]] : This module attempts to bridge the gap between being inundated with old buffer if you have KeepBuffer=true; and possibly missing messages when you ping out, if you have KeepBuffer=false.
|
; [[clientnotify]] : Notify about new incoming connections to your user.
| 1.6.3*
; [[controlpanel]] : Allows you to add/remove/edit users and settings on the fly via IRC messages.
| English
; [[ctcpflood]] : This module tries to block CTCP floods.
| {{irc|irc.v.bg|znc}}
; [[dcc]] : This module allows you to transfer files to and from ZNC
| <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2016-01-25
; [[disconkick]] : This module will kick your client from all channels if ZNC disconnects from server.
| <abbr title="Bulgaria">BG</abbr>, <abbr title="Czech Republic">CZ</abbr>, <abbr title="Germany">DE</abbr>, <abbr title="Italy">IT</abbr>
; [[flooddetach]] : This module detaches you from channels which are flooded.
|-
; [[listsockets]] : This module displays a list of all open sockets in ZNC.
|[https://lunarbnc.net LunarBNC]
; [[log]] : Log chat activity to file.
| unlimited
; [[missingmotd]] : This user module will send 422 to clients when they login.
|
; [[notes]] : Keep and replay notes. This is an example of [[WebMods]].
| 1.7.1*
; [[sample]] : This is an example module to help with [[writing modules]] to do whatever you want.
| English
; [[send_raw]] : Allows you to send raw traffic to IRC from other users.
| {{irc|irc.lunarirc.net|lunarbnc}}
; [[shell]] : Access your Unix shell via query right inside of your IRC client.
| <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2016-11-04
 
| <abbr title="Germany">DE</abbr>
=== Network Modules ===
|-
; [[autocycle]] : Rejoin a channel when you are the only one there (to gain operator status).
|[https://suchznc.net SuchZNC]
; [[autoop]] : Automatically give operator status to the good guys.
| unlimited
; [[modtcl]] : Allows you to run Tcl scripts in ZNC.
|
; [[autovoice]] : Automatically give voice status to everyone who joins some channel.
| 1.7-git*
; [[awaynick]] : Change your nick while you are away.
| English
; [[awaystore]] : When you are set away or detached, this module will save all private messages for you. The messages can be read until you delete them. This module will also set you away when you are idle some time.
| {{irc|chat.freenode.net|suchznc}}
; [[cert]] : This module lets users use their own SSL certificate to connect to a server.
| <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2017-05-09
; [[crypt]] : Encryption for channel/private messages.
| <abbr title="Netherlands">NL</abbr>
; [[keepnick]] : Tries to get and keep your primary nick if it is taken.
|-
; [[kickrejoin]] : Implements auto-rejoin-on-kick.
|[https://znc.quoque.ru QUOQUE ZNC]
; [[modules_online]] : Fakes online status of ZNC modules to fix some clients.
| 1
; [[nickserv]] : Auths you with NickServ.
| 10
; [[perform]] : Performs commands on connect.
| 1.6.6
; [[q]] : Auths you with Q (and a little more).
| English
; [[raw]] : View all of the raw traffic.
| {{irc|chat.freenode.net|qz}}
; [[route_replies]] : Routes back answers to the right client when connected with multiple clients.
| <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2017-11-02
; [[sasl]] : Allows you to authenticate to an IRC network via SASL
| <abbr title="United States of America">US</abbr>
; [[savebuff]] : Saves your channel buffers into an encrypted file so they can survive restarts and reboots.
|-
; [[schat]] : SSL (encrypted) DCC chats.
|[https://znc.gamers.bg ZNC Gamers]
; [[simple_away]] : Automatically set you away on IRC when disconnected from the bouncer.
| 1
; [[stickychan]] : Keeps you in specified channels.
|
; [[watch]] : Monitor activity for specific text patterns from specific users and have the text sent to a special query window.
| 1.6.5*
 
| English
=== More Modules ===
| {{irc|irc.gamers.bg|znc}}
For more modules, see [[:Category:Modules]].
| <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2017-11-15
 
| <abbr title="Bulgaria">BG</abbr>
== Managing Modules ==
|-
Modules can be added or removed easily. Modules can be stored in <code>~/.znc/modules</code> and <code>/usr/local/lib/znc</code> by default. ZNC installs its modules to that second directory, which in fact is <code>${prefix}/lib/znc</code>, but this can be changed with <code>./configure --module-prefix=DIR</code> before compiling.
|[http://viaplus.weebly.com/viabnc.html viaBNC]
 
| 5 (specified)
ZNC will first look in the local sub-directory <code>modules</code> when searching for modules. Only files that end with ".so" will be seen as a module. To remove modules you can simply delete them from the folder. No other configuration changes or restarts are necessary. To remove, but also keep a module for later use you can also change the name, like: <code>mv sample.so sample.so_</code>.
|
 
| 1.6.6
To compile a new module you must first save the source as a ".cpp" file. [[Compiling modules]] describes the process in detail.
| Spanish / English
 
| {{irc|chat.freenode.net|viaBNC}}
=== (Un)Loading Modules ===
| <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2018-02-21
Global, user, and network modules can be (un)loaded from [[webadmin]] or via the <tt>*status</tt> query window, like:
| <abbr title="Canada">CA</abbr>, <abbr title="United States of America">US</abbr>
 
|-
/msg *status LoadMod [--type=global|user|network] <module> <parameters>
|[http://bnc4you.ml bnc4you]
/msg *status UnloadMod [--type=global|user|network] <module>
| 2
 
|
* <code>*</code> is the StatusPrefix set in your [[configuration]]. Usually it's just an asterisk ("*").
| 1.6.6
* <code>[--type=global|user|network]</code> optionally specifies whether to (un)load the module as a global, user, or network module. Not all modules can be loaded at all levels; see individual [[:Category:Modules|Module documentation]] to find out where it may be loaded.
| English
* <code><module></code> is based on the modules file name, excluding the ".so" extension.
| {{irc|chat.freenode.net|bnc4you}}
* <code><parameters></code> are specific for each module and not required: You can provide parameters when loading the module, or you can set up the module after loading it.
| <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span>2018-03-03
 
| <abbr title="Turkey">TR</abbr>
So, to load the '''[[log]]''' module at the '''global''' level (as opposed to user or network) and remove all color/formatting control codes with the '''<code>-sanitize</code>''' parameter, you would type:
|-
 
|}
/msg *status LoadMod --type=global log -sanitize
 
For older versions of ZNC, you won't have the option to specify <code>[--type=global|user|network]</code>. In that case, just use:
/msg *status LoadMod <module> <parameters>
/msg *status UnloadMod <module>
 
Please keep in mind that a user is not able to load a module if the directive "DenyLoadMod" is set to true. Trying to load a module will fail with "Unable to load [<module>] Access Denied.".
 
If a module prevents ZNC from starting up and therefore you can't unload the module using [[webadmin]], you can edit [[configuration|znc.conf]] and remove the corresponding <code>LoadModule</code> line.
 
== Using modules ==
It is recommended to read the module's wikipage if you want to find out how a module works. Alternatively the following command can be used to get a command list:
/msg *<module> help
* <code>*</code> is the StatusPrefix set in your [[configuration]]. Usually it's just an asterisk ("*").
 
== External modules ==
Below is a partial list of popular external modules. Please see [[:Category:External Modules]] for a comprehensive list.
 
; [[amsgfilter]] : Filters amsgs from specified channels.
; [[antiidle]] : Hides your idle time.
; [[colloquy]] : Push private messages and highlights to your iPhone/iPod Touch via Colloquy Mobile.
; [[email]] : Monitors email activity on local disk /var/mail/user.
; [[fish]] : FiSH encryption for channel/private messages.
; [[mutter]] : Push private messages and highlights to your mobile devices via Mutter IRC client for iOS.
; [[push]] : Send private messages and highlights to your mobile devices using various push notification services. Includes a highly configurable set of conditions to control how and when notifications get sent.
; [[twitter]] : Implements a Twitter client. It can post new tweets and monitor searches, users, timeline and @mentions.
 
[[Category:Modules]]

Revision as of 14:28, 15 October 2018

[Edit data]

Provider Max Networks per User ZNC Version Language IRC Support Date Started ZNC locations
(country codes, using exceptions)
Default Premium
xShellz 2 12, 20, or 30 1.6.1 English #xShellz@chat.freenode.net &3017116430852009-03-01 US, UK
PanicBNC 2 unlimited 1.7.1* English #PanicBNC@irc.esper.net &3017116430852012-02-01 AU, CA, DE, FR, JP, NL, PL, SG, UK, US
ZNC.BG 1 1.6.3* English #znc@irc.v.bg &3017116430852016-01-25 BG, CZ, DE, IT
LunarBNC unlimited 1.7.1* English #lunarbnc@irc.lunarirc.net &3017116430852016-11-04 DE
SuchZNC unlimited 1.7-git* English #suchznc@chat.freenode.net &3017116430852017-05-09 NL
QUOQUE ZNC 1 10 1.6.6 English #qz@chat.freenode.net &3017116430852017-11-02 US
ZNC Gamers 1 1.6.5* English #znc@irc.gamers.bg &3017116430852017-11-15 BG
viaBNC 5 (specified) 1.6.6 Spanish / English #viaBNC@chat.freenode.net &3017116430852018-02-21 CA, US
bnc4you 2 1.6.6 English #bnc4you@chat.freenode.net &3017116430852018-03-03 TR