14. 💨 Papo

Usaremos um webchat embedável direto nas páginas da 🌎 Rua, que através dos poderes web do KiwiIRC e da rede de IRC Freenode permitirá que possamos falar facilmente através de todas as páginas de forma acessível, combinando o Papo com os outros Elementos.

14.1. IRC!!?!?!?

O mIRC, companheiro de Internet de muita gente nos anos 90 e 00, é apenas um dos vários clientes / apps que permitem acessar as redes IRC, que continuam bastante ativas para alguns públicos, como os desenvolvedores de software livre, e continua sendo uma possibilidade fácil e universal de chat.

14.2. Rede Freenode

../_images/papo_freenode.png

Ao contrário do Whatsapp, Telegram, e tantos mensageiros que temos hoje em dia, no IRC você pode escolher o programa que usa para se conectar e também o servidor, uma vez que “IRC” é o protocolo (um grande combinado de vocabulário e gramática pra computadores se entenderem sobre um assunto, aqui neste caso salas de chat).

Vamos utilizar o Freenode, por conta de sua praticidade e gratuidade mas principalmente por seu alinhamento com a comunidade de software livre – o ♄ Blouco no fim das contas é um grande algoritmo executado em aliança por humanos e máquinas.

Freenode, conhecida anteriormente como Open Projects Network, é uma rede de IRC muito popular entre usuários de software livre e programadores. É a rede oficial de vários projetos open source importantes, como o Slackware, Ubuntu, Gentoo GNU/Linux, e outros. A rede alega sustentar mais de 23.500 conexões simultâneas em momentos de pico.

Usuários da rede são encorajados a contribuir com o Peer-Directed Projects Center. Os fundos doados são usados para continuar as melhorias na rede, assim como possibilitar que o PDPC apóie vários projetos de apoio social para as comunidades de software livre.

O Freenode hospeda uma versão do KiwiIRC e torna muito fácil embutir um chat dentro da – é o que estamos fazendo com as páginas da 🌎 Rua! Ele pode ser acessado de forma independente por aqui:

https://webchat.freenode.net/

14.3. KiwiIRC

A solução mais acessível para levar o IRC até o navegador, de forma prática e bunita, é o KiwiIRC:

KiwiIRC torna o Web IRC fácil. Um cliente IRC feito à mão do qual você pode desfrutar. Projetado para ser usado facilmente e livremente.

https://kiwiirc.com/

../_images/papo.png

14.3.1. Falando no privado

../_images/papo_dm.png

14.3.2. Configurando e mantendo o canal

../_images/papo_op.png

Quando você se entra em um canal não registrado (será sempre nosso caso na criação de um Blouco), torna-se a operadora do canal (“Op”), que permite kickar, banir, e também tornar a pessoa administradora (ou voice, que permite que ela fale quando o canal é mutado).

Clicando no ícone de engrenagem ⚙️ no canto superior direito, é possível acessar todas as configurações numa interface simples.

14.3.3. Mudando e registrando o nick

Por se tratar de uma rede bem grande e antiga, é muito possível que nicks simples já estejam registrados. Clicando no ícone de lápis ✏️ que aparece ao clicar em seu nick, é possível mudá-lo.

Encontrando um que esteja disponível, registrá-lo só requer contatar @NickServ (o bot de registro) através do comando:

/nickserv register SUA_SENHA SEU_EMAIL

Seu nick já está registrado, e continuará por mais que um dia se você seguir o e-mail de confirmação.

14.3.4. Exemplo de uso do KiwiIRC

Vídeo em inglês e com uma versão bem antiga, mas o processo é o mesmo.

14.4. Conectando externamente

https://www.mirc.com/images/indexlogorbf.gif

Se você estiver no computador (pois no celular vai perder o foco da transmissão), pode usar qualquer outro cliente IRC para conectar-se, até o saudoso (mas não morto) mIRC. Nossa recomendação para uma solução fácil, funcional e de código aberto é o HexChat.

https://hexchat.readthedocs.io/en/latest/_images/channel_window.png

14.5. Uso avançado

14.6. Bots

../_images/meetbot.png ../_images/meetbot2.png

Bots serão muito bem vindos para utilidades e também para algazarras. Por ser um protocolo bem consolidado e bastante antigo, existe uma variedade grande de pacotes e módulos prontos para implementar bots.

Make A Retro Chatbot For IRC

14.6.1. BotyMcBotface

BotyMcBotface (because what else can you name a bot, really?) is a simple IRC bot skeleton inspired by the tutorial at https://pythonspot.com/en/building-an-irc-bot. This skeleton doesn’t really do anything; it was designed as an example of how to write a bot that others can build upon.

https://github.com/enfors/botymcbotface

14.6.2. Sopel

Sopel is a simple, easy-to-use, open-source IRC utility bot, written in Python. It’s designed to be easy to use, easy to run, and easy to extend.

https://sopel.chat/

Plugin commands

This page contains a list of all commands from plugins within Sopel’s main plugins directory. If you have added plugins without rebuilding the documentation, or are using a secondary plugins directory, those plugins will not be shown here

https://sopel.chat/usage/commands/

meetbot.py - Sopel Meeting Logger Plugin

https://github.com/sopel-irc/sopel/blob/master/sopel/modules/meetbot.py

14.6.3. MeetBot

MeetBot is designed to assist in running meetings, taking notes, and so on. It is in pure python, as a plugin to supybot. However, there is a clear distinction between meeting-code and IRC-code, so it should be relatively easy to port to other bots. It is under the supybot license (3-clause BSD).

https://wiki.debian.org/MeetBot/

14.6.4. Bots de cadeia de Markov - Texto gerado por computador

Algo que é simples e pode ser bem divertido é colocar bots soltando frases de tempos em tempos baseadas em cadeias de Markov (como autocompletar do celular).

Aqui um exemplo de texto gerado por essa ferramenta online usando algumas letras de marchinha:

../_images/markov_marchinha.png

Programando diretamente é possível fazer o bot cuspir conteúdos mais elaborados, começando com uma determinada palavra por exemplo, ou alimentar ele usando o conteúdo já presente no chat. Também é possível fazer com que isso aconteça de tempos em tempos, ou acionado por um comando por mensagem.

Duas ferramentas para criar bots de Markov para o IRC facilmente:

dagbot:

An IRC Markov Chain chatbot with a simple pluggable command system using Python 3.6. […] Commands have a very simple interface which tell the bot what keywords are triggers & what class should handle said keywords.

https://github.com/anirbanmu/dagbot

markov-irc:

IRC bot with text generation based on Markov property. A Redis database is used to store words.

https://github.com/miedzinski/markov-irc

14.6.5. CloudBot

CloudBot is a simple, fast, expandable open-source Python IRC Bot!

https://github.com/TotallyNotRobots/CloudBot

14.6.6. Limnoria

Limnoria is a robust (it doesn’t crash), user friendly (it’s easy to configure) and programmer friendly (plugins are extremely easy to write) Python IRC bot. It aims to be an adequate replacement for most existing IRC bots. It includes a very flexible and powerful ACL system for controlling access to commands, as well as more than 60 builtin plugins providing around 400 actual commands.

https://docs.limnoria.net/

collection of plugins for Limnoria.

https://github.com/jlu5/SupyPlugins/

14.6.7. A curated list of awesome IRC resources.

https://github.com/davisonio/awesome-irc