{"id":111,"date":"2011-03-17T23:52:37","date_gmt":"2011-03-17T23:52:37","guid":{"rendered":"http:\/\/www.budus.it\/Blog\/?p=111"},"modified":"2017-06-18T07:49:40","modified_gmt":"2017-06-18T07:49:40","slug":"espeak-facciamo-parlare-xchat","status":"publish","type":"post","link":"https:\/\/www.budus.it\/Blog\/espeak-facciamo-parlare-xchat\/","title":{"rendered":"eSpeak: Facciamo parlare XChat"},"content":{"rendered":"<p><!-- p { margin-bottom: 0.21cm; } -->Potr\u00e0 sembrare una possibilit\u00e0 inutile, banale, anche un po&#8217; trash.<\/p>\n<p>Ma non lo \u00e8.<\/p>\n<p>S\u00ec perch\u00e9, <span style=\"text-decoration: underline;\"><strong>sentire<\/strong><\/span> quello che viene scritto nel canale e sottolineo il verbo <strong>sentire<\/strong>, con le proprie orecchie, pu\u00f2 risultare molto comodo.<\/p>\n<p><!--more--><\/p>\n<p>Qualche esempio ? Eccolo:<\/p>\n<ol>\n<li>Si pu\u00f2 facilmente monitorare quello che avviene in un canale.<\/li>\n<li>Si pu\u00f2 controllare quello che scrive un particolare utente.<\/li>\n<li>Si possono monitorare attivit\u00e0 di vario tipo, come il JOIN di un utente piuttosto che un BAN.<\/li>\n<\/ol>\n<p>Certo, sono tutte attivit\u00e0 che magari gi\u00e0 fate \u2026. ma sospetto che le fate dovendo guardare la finestra di XChat, non facendo altro !<\/p>\n<p>Gi\u00e0 perch\u00e9 io posso dedicarmi a scrivere qualcosa mentre <strong>ascolto quello che viene detto nel mio canale<\/strong> o cose del genere.<\/p>\n<p>\u00c8 veramente comodo; quando ho deciso di implementare questo sistema, non ero molto convinto circa la sua utilit\u00e0 ma, dopo un po&#8217;, mi sono ricreduto, tant&#8217;\u00e8 che l&#8217;ho sviluppato abbastanza e sono convinto sia uno dei migliori disponibili per XChat.<\/p>\n<p>Ad esempio si auto-disattiva nel momento in cui il canale monitorato contiene troppi utenti, gestisce le emoticons, ha un sistema di \u201ccoda della riproduzione\u201d in modo da gestire anche <em>dialoghi serrati<\/em>, ecc&#8230;<\/p>\n<p>Bene, se ho incuriosito e si vuole provarlo, di seguito spiego i passaggi salienti; prima per\u00f2 una premessa: <strong>do per scontato si conosca XChat e IRC in generale<\/strong>.<\/p>\n<p>Il sistema, per funzionare, si appoggia (sottolineo che la cosa \u00e8 dedicata al solo Linux) ad un software chiamato <strong>eSpeak<\/strong> \u2013 che \u00e8 un sintentizzatore vocale \u2013 e un plug-in per <strong>XChat IRC<\/strong>, chiamato <strong>BuDuScRiPt<\/strong>. Devono essere installati tutti; il primo lo do per scontato, gli altri no, quindi partiamo:<\/p>\n<ul>\n<li>MENU: Sistema \u2192 Amministrazione \u2192 Gestore pacchetti<\/li>\n<li>Inserire la password di amministratore<\/li>\n<li>Nel campo <em><strong>Ricerca veloce<\/strong><\/em> inserire <strong>espeak<\/strong> .\n<p><figure id=\"attachment_112\" aria-describedby=\"caption-attachment-112\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/01-Gestore-di-pacchetti-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-112\" title=\"01-Gestore di pacchetti\" src=\"https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/01-Gestore-di-pacchetti-1-300x156.png\" alt=\"\" width=\"300\" height=\"156\" srcset=\"https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/01-Gestore-di-pacchetti-1-300x156.png 300w, https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/01-Gestore-di-pacchetti-1.png 997w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-112\" class=\"wp-caption-text\">Gestore dei pacchetti<\/figcaption><\/figure><\/li>\n<li>Installarlo. Verificare anche che siano presenti i pacchetti: <strong>xterm<\/strong>, <strong>wget<\/strong>, <strong>lynx<\/strong> e <strong>curl<\/strong> .<\/li>\n<li>Ora passiamo a <strong>BuDuScRiPt<\/strong>. Lo si trova qui: <a title=\"BuDuScRiPt plug-in\" href=\"http:\/\/digilander.libero.it\/udasoft\/Software\/Linux\/buduscript\" target=\"_blank\" rel=\"noopener\">http:\/\/digilander.libero.it\/udasoft\/Software\/Linux\/buduscript<\/a><\/li>\n<li>All&#8217;indirizzo di cui sopra \u00e8 spiegato come installarlo; ad installazione terminata, avviamo XChat e dovremmo trovare il menu <strong>eSpeak<\/strong> , come quello in figura:\n<p><figure id=\"attachment_114\" aria-describedby=\"caption-attachment-114\" style=\"width: 203px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/02-Menu-eSpeak_trimmed.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-114\" title=\"02-Menu eSpeak_trimmed\" src=\"https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/02-Menu-eSpeak_trimmed-203x300.png\" alt=\"\" width=\"203\" height=\"300\" srcset=\"https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/02-Menu-eSpeak_trimmed-203x300.png 203w, https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/02-Menu-eSpeak_trimmed.png 511w\" sizes=\"auto, (max-width: 203px) 85vw, 203px\" \/><\/a><figcaption id=\"caption-attachment-114\" class=\"wp-caption-text\">Menu eSpeak di BuDuScRiPt<\/figcaption><\/figure><\/li>\n<\/ul>\n<p>Guardando la figura si pu\u00f2 notare come tutti i comandi sono auto-esplicativi, quindi non mi soffermo a spiegare come usarli; preferisco piuttosto spiegare il meccanismo con il quale \u00e8 gestita la cosa.<\/p>\n<p>Quando si aggiunge un \u201cavvertimento\u201d (cio\u00e8 si fa in modo che il sintetizzatore vocale legga determinati eventi che avvengono in XChat) con il menu di cui sopra, il plug-in (<strong>BuDuScRiPt<\/strong>) va a creare una \u201cSentinella\u201d.<\/p>\n<p>In linea generale una <em>Sentinella<\/em> \u00e8 lo strumento con il quale il plug-in esegue un&#8217;azione nel momento in cui viene soddisfatta una condizione valutata al verificarsi di un determinato evento.<\/p>\n<p>Le <em>sentinelle<\/em> sono temporanee, ovvero: sono attive e restano tali nel momento in cui vengono create ma, se non sono salvate, vengono perse nel momento in cui si chiude XChat.<\/p>\n<p>Questo per far notare che gli \u201cavvertimenti\u201d attivati con il menu <strong>eSpeak<\/strong> sono temporanei; per renderli permanenti \u00e8 necessario <strong>salvare le <\/strong><em><strong>Sentinelle<\/strong><\/em>. \u00c8 possibile farlo con il comando di menu: BuDuScRiPt \u2192 Gestione Sentinelle \u2192 Salva Sentinelle in Memoria<\/p>\n<p>Se le <em>sentinelle<\/em> vengono salvate, sono caricate e rese operative anche al successivo avvio di XChat (chiaramente il plug-in deve essere installato e funzionante).<\/p>\n<p>Pu\u00f2 succedere che si voglia eliminare una <em>sentinella<\/em> creata; per farlo \u00e8 necessario ottenere l&#8217;<em><strong>elenco delle sentinelle<\/strong><\/em> tramite il comando di menu: BuDuScRiPt \u2192 Gestione Sentinelle \u2192 Lista Sentinelle in Memoria<\/p>\n<p>Si dovrebbe ottenere un risultato simile a quello in figura:<\/p>\n<figure id=\"attachment_115\" aria-describedby=\"caption-attachment-115\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/03-Lista-Sentinelle.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-115\" title=\"03-Lista Sentinelle\" src=\"https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/03-Lista-Sentinelle-300x213.png\" alt=\"\" width=\"300\" height=\"213\" srcset=\"https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/03-Lista-Sentinelle-300x213.png 300w, https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/03-Lista-Sentinelle-1024x727.png 1024w, https:\/\/www.budus.it\/Blog\/wp-content\/uploads\/2011\/03\/03-Lista-Sentinelle.png 1166w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-115\" class=\"wp-caption-text\">Lista delle Sentinelle<\/figcaption><\/figure>\n<p>Come prima cosa bisogna individuare la <em>sentinella<\/em> che si desidera eliminare; se si sono aggiunte molte <em>sentinelle<\/em> (come in figura, ma che sono tutte dedicate ad \u201ceSpeak\u201d) la cosa si complica un po&#8217; perch\u00e9 bisogna capirne la rappresentazione (e mi rendo conto non sia banalissima) .<\/p>\n<p>Tralasciando il caso in cui le <em>sentinelle<\/em> aggiunte siano dedicate ad altre situazioni \u2013 e quindi do per scontato che l&#8217;utente gi\u00e0 ne conosca il funzionamento \u2013 qui cercher\u00f2 di spiegare brevemente come individuare quelle dedicate ad <strong>eSpeak<\/strong>.<\/p>\n<p>La prima cosa a cui fare caso \u00e8 la presenza di \u201c<em>$buduscript_macro__espeak_enable<\/em>\u201d; solo le <em>sentinelle<\/em> che contengono questa scritta sono dedicate al sintetizzatore vocale.<\/p>\n<p>La seconda cosa cui fare attenzione \u00e8 la scritta in rosso, che rappresenta l&#8217;<em><strong>evento<\/strong><\/em> a cui la sentinella reagisce; considerando quelle in figura abbiamo:<\/p>\n<ul>\n<li>jchannel \u2192 JOIN nel canale (un utente che entra o noi stessi)<\/li>\n<li>pchannel \u2192 PART dal canale (un utente che esce o noi stessi)<\/li>\n<li>kick \u2192 KICK di un utente (un utente cacciato dal canale o noi stessi)<\/li>\n<li>pserver \u2192 QUIT dal server (un utente ha chiuso la connessione al server)<\/li>\n<li>mode \u2192 MODE del canale o di un utente (cambio di modalit\u00e0, BAN compresi)<\/li>\n<li>chgnick \u2192 Cambio di nickname (un utente che ha cambiato nick)<\/li>\n<li>flood \u2192 Un utente che scrive in modo troppo ravvicinato o ripetitivo<\/li>\n<li>badword \u2192 Un utente che scrive parole proibite<\/li>\n<li>badnick \u2192 Un utente che usa un nickname proibito<\/li>\n<li>text \u2192 Tutto quello che viene scritto, sia privato che pubblico<\/li>\n<\/ul>\n<p>La terza \u00e8 la <em><strong>condizione<\/strong><\/em> che \u00e8 la scritta immediatamente successiva all&#8217;<em><strong>evento<\/strong><\/em> (i vari \u201cpezzi\u201d che compongono le <em>sentinelle<\/em> sono colorati in modo diverso, quindi facilmente individuabili); non credo sia indispensabile capirne il significato, probabilmente \u201candando ad intuito\u201d si pu\u00f2 individuare la <em>sentinella<\/em> desiderata.<\/p>\n<p>A questo punto non rimane che individuare il <em><strong>numero identificativo<\/strong><\/em> della <em>sentinella<\/em>; \u00e8 il primo numero, che appare tra parentesi quadre. Tramite questo numero \u00e8 possibile eliminare la sentinella, attraverso il comando di menu: BuDuScRiPt \u2192 Gestione Sentinelle \u2192 Elimina una sentinella \u2026<\/p>\n<p>Se la <em>sentinella<\/em> \u00e8 stata salvata e si vuole eliminarla in modo permanente \u00e8 necessario salvare le sentinelle in memoria (vedi sopra).<\/p>\n<p>Per concludere, oltre a suggerire la possibilit\u00e0 che \u00e8 possibile personalizzare le <em>sentinelle<\/em> (ma, per farlo, occorre leggersi la documentazione del plug-in), faccio notare che \u00e8 possibile configurare il funzionamento di <strong>eSpeak<\/strong> tramite il menu: eSpeak \u2192 Configurazione<\/p>\n<p>Beh, come al solito, mi sono dilungato anche troppo; per dubbi o domande, sono qui !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Potr\u00e0 sembrare una possibilit\u00e0 inutile, banale, anche un po&#8217; trash. Ma non lo \u00e8. S\u00ec perch\u00e9, sentire quello che viene scritto nel canale e sottolineo il verbo sentire, con le proprie orecchie, pu\u00f2 risultare molto comodo.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45,10,6],"tags":[87,88,89,46],"class_list":["post-111","post","type-post","status-publish","format-standard","hentry","category-irc","category-multimedia","category-software","tag-espeak","tag-sintentizzatore","tag-vocale","tag-xchat"],"_links":{"self":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts\/111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/comments?post=111"}],"version-history":[{"count":4,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts\/111\/revisions"}],"predecessor-version":[{"id":913,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts\/111\/revisions\/913"}],"wp:attachment":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/media?parent=111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/categories?post=111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/tags?post=111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}