# KVIrc

KVIrc è un client IRC alternativo per l'ambiente grafico KDE su sistema operativo GNU/Linux, realizzato nel 1998 per mano del programmatore italo-polacco Szymon Stefanek. Il software, sviluppato sulla base del toolkit grafico Qt, è stato riscritto quasi interamente in corrispondenza delle release principali ed è disponibile anche per Microsoft Windows e macOS. La licenza applicata a tutte le piattaforme è la GPL, ad eccezione della libreria openssl, a cui vengono fatte alcune note aggiuntive.
Lo caratterizzano il colorato ambiente dell'interfaccia grafica, la presenza di emoticon e di avatar che individuano ciascun utente e le trasparenze. Inoltre ogni parte grafica (dalle icone alla lista degli utenti) può essere interamente modificata tramite il configuratore del tema o completamente rimossa, tanto da ridurlo a semplici finestre e testo puro.
Tra le opzioni si trovano sistemi antispam, protezione antiflood, gestione della crittografia, analisi e visualizzazione dei file di log (che vengono salvati direttamente in formato compresso tramite l'uso delle librerie zlib) e svariate opzioni che rendono questo client particolarmente versatile e completamente personalizzabile.
Come gli altri client IRC, anche KVIrc presenta un motore di scripting interno e un proprio linguaggio di programmazione semplificato. Questo permette la realizzazione, da parte degli utenti, di addon ed estensioni che possono andare dalla creazione di semplici comandi supplementari (tramite la creazione di Alias) fino alla realizzazione di script grafici con menù, liste ad albero pulsanti ed un po' tutti gli elementi che le librerie Qt permettono di creare. Inoltre per gli amanti della programmazione orientata agli oggetti il motore di scripting, KVS, supporta l'uso di classi derivate direttamente dalle Qt.

## Caratteristiche principali

* Connessioni simultanee a server multipli
* Supporto IPv6, SSL e IPv6+SSL
* Supporto per numerose codifiche del testo (fra le altre UTF-8, CP1251, JIS7 ed euc-JP)
* Crittografia per le conversazioni sui canali, nei messaggi privati e nelle DCC chat.
* Visualizzazione degli avatar, anche animati, associati agli utenti
* Visualizzazione degli smiles come icone
* Linguaggio di scripting con estensioni ad oggetti, integrabile con Perl e Python
* Possibilità di condivisione dei file tramite Direct Client-to-Client (DCC) e RevDCC
* Integrazione con i maggiori software di riproduzione musicale, tra cui Winamp, XMMS, Amarok e Audacious
* Possibilità di gestire e creare dei temi personalizzati, degli addon e dei moduli in C++ esterni
* Sistema antispam ed antiflood

## KVS Scripting

KVS sta per KVirc Scripting: il linguaggio proprio di KVIrc.
KVS è ispirato principalmente al C++ ma vi si ritrovano costrutti che richiamano chiaramente altri linguaggi come Perl e Python.
Il linguaggio di scripting di KVIrc, oltre alla possibilità di definire azioni che il client compie automaticamente come risposta ad alcuni eventi, permette all'utente la creazione di comandi complessi (Alias) e di vari elementi grafici che vanno da semplici pulsanti, barra degli strumenti, liste ad albero fino alla gestione di immagini in formato PNG, cosa che consente la realizzazione di script molto complessi come ad esempio giochi.
KVS comprende non soltanto i costrutti base dei linguaggi di programmazione, come la possibilità di utilizzare variabili, array e funzioni, ma anche costrutti più avanzati (come classi ed ereditarietà) che caratterizzano i linguaggi orientati agli oggetti. Inoltre, ovviamente, KVS supporta tutti i comandi tipici del protocollo RFC1459 IRC. I principali sviluppatori del linguaggio e delle attuali classi sono stati gli italiani Noldor (Alessandro Carbone) e Grifisx (Antonino G. Imbesi).

## Sviluppo

Il team di sviluppo di KVirc è attivamente presente sui canali di chat IRC, dove anche eventuali ospiti possono partecipare attivamente suggerendo idee, consigli e quant'altro che possa rivelarsi utile.