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: Difference between revisions
m updated the Languages link, the way https://wiki.znc.in/ZNC is coded |
No edit summary |
||
Line 1: | Line 1: | ||
{{Languages|Modules}} | {{Languages|Modules}} | ||
== | == Panoramica == | ||
ZNC | I '''Moduli''' vengono usati per estendere e modificare le funzioni dello '''ZNC'''. Gli utenti interagiscono con i mouduli inviando messaggi ad un utente speciale su IRC. Per esempio, per vedere le parole chiave evidenziate ''(highlight keywords)'' nella '''watch list''', puoi inviare il comando '''"/msg *watch list"'''. Quando lo '''ZNC''' vede che il nick a cui stai inviando un messaggio inizia con un '''asterisco''', non inoltra il messaggio all'IRCd/server, ma lo invia al modulo appropriato per l'elaborazione. In questo caso, il modulo '''watch''' riceverà il messaggio, e risponderà con un elenco delle parole chiave ''(keywords)'' impostate in precedenza. Ciò costituisce un modo molto comodo e standard di configurare o comunicare in altro modo con i moduli caricati, nonché un modo comune e standard per i moduli caricati di visualizzare lo stato o altre informazioni. Si noti che questo è per i moduli caricati. È necessario caricare un determinato modulo, ad esempio '''"/znc loadmod watch"''', prima di potersi interfacciare con il modulo '''watch'''. La maggior parte dei moduli risponde al comando '''"/msg *nome-del-modulo help"''' con un elenco di comandi disponibili. | ||
I moduli '''ZNC''' possono essere caricati in tre "diversi livelli": livello '''globale''', livello '''network''' e livello '''utente'''. Ogni modulo definisce autonomamente se è disponibile per il caricamento globale, specifico per una rete, o specifico per un utente. Il livello utente e i moduli di network possono fare cose che vanno da [[crypt|manipolare messaggi di entrata/uscita]] a [[twitter|implementare un client Twitter completo]]. Possono anche svolgere attività IRC più tradizionali come [[autoop|auto-op basata sulla sfida]], [[simple_away|impostare il tuo away (l'assenza)]], o [[log|logging su disco]]. Ogni utente può caricare e configurare il proprio set di moduli per personalizzare la propria esperienza in base alle proprie preferenze. | |||
I moduli globali sono caricabili dagli amministratori e forniscono funzionalità o modificano il comportamento di tutti gli utenti. Per esempio, il modulo [[partyline]] deve essere globale poiché fornisce funzionalità a tutti gli utenti di una determinata istanza '''ZNC''' per poter comunicare tra loro all'interno dello '''ZNC''' stesso. I moduli globali possono fare tutto ciò che possono fare i moduli a livello utente, nonché alcuni extra. Possono sostituire il [[imapauth|sistema di autenticazione]], modificare il processo di scrittura della configurazione, gesstire i CAP, etc. | |||
I moduli possono collegarsi allo '''ZNC''' anche tramite [[WebMods|interfaccia web]] per fornire contenuti via web. Il modulo web più comune è il [[webadmin]] che consente agli amministratori di '''aggiungere/rimuovere''' utenti, consentendo a questi ultimi di osservare e configurare le impostazioni del proprio '''ZNC''' anche attraverso il browser. | |||
== Developers == | == Developers == | ||
ZNC | I moduli ZNC sono scritti nativamente in C++. Ci sono anche un paio di moduli che incorporano un interprete per permettere di caricare moduli Perl, Python, o moduli Tcl. Per saperne di più sula creazione di moduli, si consiglia di leggere [[modperl|Moduli Perl]], [[modpython|Moduli Python]], [[modtcl|Moduli TCL]], o [[Writing modules|Moduli C++]]. | ||
Sentitevi liberi di creare wikipages sui moduli che avete creato, ma non dimenticate di aggiungere un link per il download, informazioni di contatto e utilizzare lo stesso layout del resto dei moduli. I contributi sono sempre molto apprezzati. | |||
== | == Lista Moduli == | ||
=== | === Moduli Globali === | ||
; [[adminlog]] : Log user connects, disconnects, and failed logins to a file and/or to syslog. | ; [[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. | ; [[blockuser]] : Blocks certain users from using ZNC, saying their account was disabled. | ||
Line 31: | Line 32: | ||
; [[webadmin]] : Allows you to add/remove/edit users and settings on the fly via a web browser. | ; [[webadmin]] : Allows you to add/remove/edit users and settings on the fly via a web browser. | ||
=== | === Moduli Utente === | ||
; [[controlpanel|admin]] : (Now [[controlpanel]]) Allows you to add/remove/edit users and settings on the fly via IRC messages. | ; [[controlpanel|admin]] : (Now [[controlpanel]]) Allows you to add/remove/edit users and settings on the fly via IRC messages. | ||
; [[autoattach]] : Watches your [[Detaching|detached]] channels and reattaches you automatically when there is specified activity in a channel you added to your autoattach list. | ; [[autoattach]] : Watches your [[Detaching|detached]] channels and reattaches you automatically when there is specified activity in a channel you added to your autoattach list. | ||
Line 55: | Line 56: | ||
; [[shell]] : Access your Unix shell via query right inside of your IRC client. | ; [[shell]] : Access your Unix shell via query right inside of your IRC client. | ||
=== Network | === Moduli Network === | ||
; [[autocycle]] : Rejoin a channel when you are the only one there (to gain operator status). | ; [[autocycle]] : Rejoin a channel when you are the only one there (to gain operator status). | ||
; [[autoop]] : Automatically give operator status to the good guys. | ; [[autoop]] : Automatically give operator status to the good guys. | ||
Line 79: | Line 80: | ||
; [[watch]] : Monitor activity for specific text patterns from specific users and have the text sent to a special query window. | ; [[watch]] : Monitor activity for specific text patterns from specific users and have the text sent to a special query window. | ||
=== | === Altri moduli === | ||
Per altri moduli, vedi [[:Category:Modules]]. | |||
== | == Gestione moduli == | ||
I moduli possono essere aggiunti o rimossi facilmente. I moduli possono essere memorizzati <code>~/.znc/modules</code> e <code>/usr/local/lib/znc</code> di default. Lo ZNC installa i suoi moduli in quella seconda directory, che in realtà è <code>${prefix}/lib/znc</code>, ma questo può essere cambiato con <code>./configure --module-prefix=DIR</code> prima della compilazione. | |||
ZNC | Lo ZNC cercherà prima nella sottocartella locale <code>modules</code> quando ricerca i moduli. Solo i file che terminano con ".so" verranno visti come un modulo. Per rimuovere i moduli è sufficente eliminarli dalla cartella. Non sono necessarie altre modifiche. Per rimuovere, ma anche mantenere un modulo per un uso successivo è anche possibile cambiare il nome, come:: <code>mv sample.so sample.so_</code>. | ||
Per complilare un nuovo modulo è necessario prima salvare il sorgente come file ".cpp". Leggi [[Compiling modules|Compilazione moduli]] | |||
che descrive il processo nel dettaglio. | |||
=== | === Aggiungere/Rimuovere moduli === | ||
Global, user, | I moduli Global, user, e network possono essere aggiunti e rimossi tramite il pannello [[webadmin]] oppure tramite la finestra di query <tt>*status</tt>, come: | ||
/msg *status LoadMod [--type=global|user|network] < | /msg *status LoadMod [--type=global|user|network] <modulo> <parametri> | ||
/msg *status UnloadMod [--type=global|user|network] < | /msg *status UnloadMod [--type=global|user|network] <modulo> | ||
* <code>*</code> | * <code>*</code> è lo StatusPrefix impostato nelle tua [[configuration]]. Solitamente è un asterisco ("*"). | ||
* <code>[--type=global|user|network]</code> | * <code>[--type=global|user|network]</code> opzionalmente specifica se caricare o rimuovere il modulo come modulo Globale, Utente o Network. Non tutti i moduli possono essere caricati su tutti i livelli; vedi individuale [[:Category:Modules|Module documentation]] per scoprire dove può essere caricato. | ||
* <code>< | * <code><modulo></code> si riferisce al nome del file dei moduli, esclusa l'estensione ".so". | ||
* <code>< | * <code><parametri></code> sono specifici per ogni modulo e non richiesti: È possibile fornire i parametri quando si carica il modulo, oppure è possibile configurare il modulo dopo averlo caricato. | ||
Quindi, per caricare il modulo '''[[log]]''' a livello '''globale''' (rispetto all'utente o al network) e rimuovere tutti i codici di controllo colore/formattazione con il comando '''<code>-sanitize</code>''' parametro, si dovrebbe digitare: | |||
/msg *status LoadMod --type=global log -sanitize | /msg *status LoadMod --type=global log -sanitize | ||
Nelle versioni precedenti dello ZNC, non è presente l'opzione per specificare <code>[--type=global|user|network]</code>. In questo caso, usa soltanto: | |||
/msg *status LoadMod < | /msg *status LoadMod <modulo> <parametri> | ||
/msg *status UnloadMod < | /msg *status UnloadMod <modulo> | ||
Si prega di tenere presente che un utente non è in grado di caricare un modulo se la direttiva "DenyLoadMod" è impostata su true (vero). Il tentativo dicaricare un modulo fallirà, e verrà visualizzato il messaggio: "Impossibile caricare [<modulo>] Accesso negato.". | |||
Se un modulo impedisce l'avvio dello ZNC e quindi non è possibile scaricare il modulo usando il [[webadmin]], è possibile modificare il file [[configuration|znc.conf]] e rimuovere la linea <code>LoadModule</code> corrispondente. | |||
== | == Utilizzo dei moduli == | ||
Si raccomanda di leggere la wikipage del modulo se si vuole scoprire come funziona un modulo. In alternativa si può usare il seguenete comando per ottenere una lista comandi: | |||
/msg *< | /msg *<modulo> help | ||
* <code>*</code> | * <code>*</code> è lo StatusPrefix impostato nelle tua [[configuration]]. Solitamente è un asterisco ("*"). | ||
== | == Moduli esterni == | ||
Per favore leggi [[:Category:External Modules]] per un elenco completo. | |||
[[Category:Modules]] | [[Category:Modules]] |
Revision as of 14:50, 2 August 2019
Panoramica
I Moduli vengono usati per estendere e modificare le funzioni dello ZNC. Gli utenti interagiscono con i mouduli inviando messaggi ad un utente speciale su IRC. Per esempio, per vedere le parole chiave evidenziate (highlight keywords) nella watch list, puoi inviare il comando "/msg *watch list". Quando lo ZNC vede che il nick a cui stai inviando un messaggio inizia con un asterisco, non inoltra il messaggio all'IRCd/server, ma lo invia al modulo appropriato per l'elaborazione. In questo caso, il modulo watch riceverà il messaggio, e risponderà con un elenco delle parole chiave (keywords) impostate in precedenza. Ciò costituisce un modo molto comodo e standard di configurare o comunicare in altro modo con i moduli caricati, nonché un modo comune e standard per i moduli caricati di visualizzare lo stato o altre informazioni. Si noti che questo è per i moduli caricati. È necessario caricare un determinato modulo, ad esempio "/znc loadmod watch", prima di potersi interfacciare con il modulo watch. La maggior parte dei moduli risponde al comando "/msg *nome-del-modulo help" con un elenco di comandi disponibili.
I moduli ZNC possono essere caricati in tre "diversi livelli": livello globale, livello network e livello utente. Ogni modulo definisce autonomamente se è disponibile per il caricamento globale, specifico per una rete, o specifico per un utente. Il livello utente e i moduli di network possono fare cose che vanno da manipolare messaggi di entrata/uscita a implementare un client Twitter completo. Possono anche svolgere attività IRC più tradizionali come auto-op basata sulla sfida, impostare il tuo away (l'assenza), o logging su disco. Ogni utente può caricare e configurare il proprio set di moduli per personalizzare la propria esperienza in base alle proprie preferenze.
I moduli globali sono caricabili dagli amministratori e forniscono funzionalità o modificano il comportamento di tutti gli utenti. Per esempio, il modulo partyline deve essere globale poiché fornisce funzionalità a tutti gli utenti di una determinata istanza ZNC per poter comunicare tra loro all'interno dello ZNC stesso. I moduli globali possono fare tutto ciò che possono fare i moduli a livello utente, nonché alcuni extra. Possono sostituire il sistema di autenticazione, modificare il processo di scrittura della configurazione, gesstire i CAP, etc.
I moduli possono collegarsi allo ZNC anche tramite interfaccia web per fornire contenuti via web. Il modulo web più comune è il webadmin che consente agli amministratori di aggiungere/rimuovere utenti, consentendo a questi ultimi di osservare e configurare le impostazioni del proprio ZNC anche attraverso il browser.
Developers
I moduli ZNC sono scritti nativamente in C++. Ci sono anche un paio di moduli che incorporano un interprete per permettere di caricare moduli Perl, Python, o moduli Tcl. Per saperne di più sula creazione di moduli, si consiglia di leggere Moduli Perl, Moduli Python, Moduli TCL, o Moduli C++.
Sentitevi liberi di creare wikipages sui moduli che avete creato, ma non dimenticate di aggiungere un link per il download, informazioni di contatto e utilizzare lo stesso layout del resto dei moduli. I contributi sono sempre molto apprezzati.
Lista Moduli
Moduli Globali
- 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.
- certauth
- This module lets users to log in via SSL client keys.
- 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.
- identfile
- Posts the ident of a user to a file when they are trying to connect.
- imapauth
- Allow users to authenticate via IMAP.
- lastseen
- Logs when a user last logged in to ZNC.
- modperl
- Loads Perl scripts as ZNC modules.
- modpython
- Allows you to use modules written on Python.
- notify_connect
- Sends a notice to all admins when a user logs in or out of ZNC.
- partyline
- Allows ZNC users to join internal channels and query other ZNC users on the same ZNC.
- webadmin
- Allows you to add/remove/edit users and settings on the fly via a web browser.
Moduli Utente
- admin
- (Now controlpanel) Allows you to add/remove/edit users and settings on the fly via IRC messages.
- autoattach
- Watches your detached channels and reattaches you automatically when there is specified activity in a channel you added to your autoattach list.
- autoreply
- Gives a automatic reply if someone messages you while you are away.
- block_motd
- Blocks the server's Message of the Day.
- bouncedcc
- Bounces DCC transfers through the znc server instead of sending them directly to the user.
- buffextras
- Add nick changes, joins, parts, topic changes etc. to your playback buffer.
- chansaver
- Saves channels to config when user joins and parts.
- charset
- Normalizes (i.e. converts) character encodings.
- 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.
- controlpanel
- Allows you to add/remove/edit users and settings on the fly via IRC messages.
- ctcpflood
- This module tries to block CTCP floods.
- dcc
- This module allows you to transfer files to and from ZNC
- disconkick
- This module will kick your client from all channels if ZNC disconnects from server.
- flooddetach
- This module detaches you from channels which are flooded.
- listsockets
- This module displays a list of all open sockets in ZNC.
- log
- Log chat activity to file.
- missingmotd
- This user module will send 422 to clients when they login.
- notes
- Keep and replay notes. This is an example of WebMods.
- sample
- This is an example module to help with writing modules to do whatever you want.
- send_raw
- Allows you to send raw traffic to IRC from other users.
- shell
- Access your Unix shell via query right inside of your IRC client.
Moduli Network
- autocycle
- Rejoin a channel when you are the only one there (to gain operator status).
- autoop
- Automatically give operator status to the good guys.
- modtcl
- Allows you to run Tcl scripts in ZNC.
- autovoice
- Automatically give voice status to everyone who joins some channel.
- awaynick
- Change your nick while you are away.
- 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.
- cert
- This module lets users use their own SSL certificate to connect to a server.
- crypt
- Encryption for channel/private messages.
- keepnick
- Tries to get and keep your primary nick if it is taken.
- kickrejoin
- Implements auto-rejoin-on-kick.
- modules_online
- Fakes online status of ZNC modules to fix some clients.
- nickserv
- Auths you with NickServ.
- perform
- Performs commands on connect.
- q
- Auths you with Q (and a little more).
- raw
- View all of the raw traffic.
- route_replies
- Routes back answers to the right client when connected with multiple clients.
- sasl
- Allows you to authenticate to an IRC network via SASL
- savebuff
- Saves your channel buffers into an encrypted file so they can survive restarts and reboots.
- schat
- SSL (encrypted) DCC chats.
- simple_away
- Automatically set you away on IRC when disconnected from the bouncer.
- 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.
Altri moduli
Per altri moduli, vedi Category:Modules.
Gestione moduli
I moduli possono essere aggiunti o rimossi facilmente. I moduli possono essere memorizzati ~/.znc/modules
e /usr/local/lib/znc
di default. Lo ZNC installa i suoi moduli in quella seconda directory, che in realtà è ${prefix}/lib/znc
, ma questo può essere cambiato con ./configure --module-prefix=DIR
prima della compilazione.
Lo ZNC cercherà prima nella sottocartella locale modules
quando ricerca i moduli. Solo i file che terminano con ".so" verranno visti come un modulo. Per rimuovere i moduli è sufficente eliminarli dalla cartella. Non sono necessarie altre modifiche. Per rimuovere, ma anche mantenere un modulo per un uso successivo è anche possibile cambiare il nome, come:: mv sample.so sample.so_
.
Per complilare un nuovo modulo è necessario prima salvare il sorgente come file ".cpp". Leggi Compilazione moduli che descrive il processo nel dettaglio.
Aggiungere/Rimuovere moduli
I moduli Global, user, e network possono essere aggiunti e rimossi tramite il pannello webadmin oppure tramite la finestra di query *status, come:
/msg *status LoadMod [--type=global|user|network] <modulo> <parametri> /msg *status UnloadMod [--type=global|user|network] <modulo>
*
è lo StatusPrefix impostato nelle tua configuration. Solitamente è un asterisco ("*").[--type=global|user|network]
opzionalmente specifica se caricare o rimuovere il modulo come modulo Globale, Utente o Network. Non tutti i moduli possono essere caricati su tutti i livelli; vedi individuale Module documentation per scoprire dove può essere caricato.<modulo>
si riferisce al nome del file dei moduli, esclusa l'estensione ".so".<parametri>
sono specifici per ogni modulo e non richiesti: È possibile fornire i parametri quando si carica il modulo, oppure è possibile configurare il modulo dopo averlo caricato.
Quindi, per caricare il modulo log a livello globale (rispetto all'utente o al network) e rimuovere tutti i codici di controllo colore/formattazione con il comando -sanitize
parametro, si dovrebbe digitare:
/msg *status LoadMod --type=global log -sanitize
Nelle versioni precedenti dello ZNC, non è presente l'opzione per specificare [--type=global|user|network]
. In questo caso, usa soltanto:
/msg *status LoadMod <modulo> <parametri> /msg *status UnloadMod <modulo>
Si prega di tenere presente che un utente non è in grado di caricare un modulo se la direttiva "DenyLoadMod" è impostata su true (vero). Il tentativo dicaricare un modulo fallirà, e verrà visualizzato il messaggio: "Impossibile caricare [<modulo>] Accesso negato.".
Se un modulo impedisce l'avvio dello ZNC e quindi non è possibile scaricare il modulo usando il webadmin, è possibile modificare il file znc.conf e rimuovere la linea LoadModule
corrispondente.
Utilizzo dei moduli
Si raccomanda di leggere la wikipage del modulo se si vuole scoprire come funziona un modulo. In alternativa si può usare il seguenete comando per ottenere una lista comandi:
/msg *<modulo> help
*
è lo StatusPrefix impostato nelle tua configuration. Solitamente è un asterisco ("*").
Moduli esterni
Per favore leggi Category:External Modules per un elenco completo.