A Vida em Preto e Branco I - Pebrot, MSN em modo texto

Esse é o primeiro artigo de uma série que irei escrever sobre o modo texto. A série tem como objetivo principal explorar a possibilidade de usar um computador com Linux sem o uso de um servidor X. Neste artigo será tratado um excelente cliente MSN em modo texto - o Pebrot.

[ Hits: 46.930 ]

Por: Fernando de Sá Moreira em 03/01/2007 | Blog: http://lattes.cnpq.br/2269235326367932


Usando o Pebrot



A interface do Pebrot é simples, embora possa não parecer a princípio. Isso acontece porque, apesar de simples, ela não é muito intuitiva. Mas pense melhor, imagine a situação a seguir: você está trabalhando em modo texto, portanto esqueça o mouse (tudo bem que algumas aplicações até tenham suporte ao roedor, mas não é o caso do Pebrot), como passar de uma parte a outra na interface de um programa? Os outros clientes MSN, como o tmsnc e o centericq, disponibilizará o TAB para esse função. Tudo bem, usar o tab é legal, ajuda a adaptação do usuário, mas, quando se está tratando de agilidade no modo texto, nada supera o poder dos comandos. Pretendo mostrar como esse tipo de interface é um dos grandes diferenciais do Pebrot.

Primeiro é interessante entender a interface do Pebrot: toda ela é composta por apenas 3 elementos. Observe os números em vermelho na figura abaixo:


1) Barra de janelas de chat: Aqui ficam as localizadas as janelas abertas. A janela ativa é determinada por colchetes.

2) Campo de mensagens: Campo onde são exibidas qualquer mensagem de retorno ao usuário.

3) Campo de escrita: Local onde todos os comandos do usuário serão digitados.

De toda a interação possível com o programa apenas três ações não são baseadas em comandos: a alternação entre as janelas de chat ativas, através do TAB, a rolagem do campo de mensagens, através do PAGE UP e PAGE DOWN e o serviço desempenhado pelo CTRL+L, que redesenha a tela (use se a tela estiver aparecendo estranha). Os comandos são digitados no campo de escrita; qualquer linha digitada iniciada por "/" ou "\" são consideradas comandos, sendo que o Pebrot não irá diferenciar entre as barras. A qualquer momento, para descobrir os comandos possíveis use o comando /h, ele listará, com comentários (em inglês), os comandos do Pebrot. Os comandos disponíveis são:

\<número>Cria um chat com o usuário que estiver com o número indicado na lista.
\cFecha o chat ativo (aquele que estiver entre colchetes no campo das janelas).
tabMuda o chat ativo.
\i <número>Convida (invite) o usuário que estiver com o número indicado na lista para o chat ativo.
\lLista os usuários conectados.
\l <lista>Mostra a lista requisitada. A lista pode ser:
fl: Forward list, usuários na sua lista de contatos
rl: Reverse list, usuários que tem você na lista deles
al: Allow list, usuários permitidos para ver seu status
bl: Block list, usuários não permitidos para ver seu status
\uLista os usuários na janela de chat ativa.
\n <novo_nick>Muda o nick para <novo_nick>.
\a <usuário>Adiciona <usuário> para sua lista de contatos.
\b <usuário>Bloqueia <usuário>.
\r <usuário>Remove <usuário> da sua lista de contatos.
\o <usuário>Abre uma janela de chat com um usuário que não está na sua lista de contatos.
\s <status>Muda status. Os status podem ser:
nln: Online
fln: Offline
hdn: Parecer Offline
idl: Inativo
awy: Ausente
bsy: Ocupado
brb: Volto Logo
phn: Ao telefone
lun: Comendo
\f <arquivo>Envia <arquivo> para o usuário na janela de chat ativa.
\faAceita a recepção de um arquivo.
\fr <posição>Rejeita o download de um arquivo. Especifique sua posição na barra das janelas de chat. Você pode inserir vários números, apenas os separe por espaços em branco. Se não houver nenhuma posição especificada, todos os pedidos serão rejeitados.
\fc <posição>Cancela o envio de um arquivo. Se nenhuma posição for inserida, todos os envios serão cancelados.
\!Executa um comando no shell!! A saída do comando aparece no campo de mensagens (isso pode estragar a exibição, use ctrl+l para corrigir).
\eLimpa conteúdo da janela ativa.
\d <arquivo>Grava o conteúdo de um chat em um arquivo. Se não for fornecido um arquivo, o programa irá gravar num arquivo temporário ("pebrot-dump").
Ctrl-lRedesenha a tela.
\h \?Ajuda.
\q Ctrl-dFechar o programa.


Lembrando que:
  • <número> = refere-se a posição do usuário na lista dos usuário conectados
  • <usuário> = refere-se ao passport MSN do contato (nome@dominio)
  • <posição> = refere-se a posição na barra de janelas de chat.
  • <arquivo> = refere-se ao caminho completo do arquivo.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Apresentando e instalando o Pebrot
   3. Executando o Pebrot
   4. Usando o Pebrot
   5. Configurando o Pebrot
   6. Integrando shell scripts e o Pebrot
   7. Conclusão e links
Outros artigos deste autor

Pensando sobre Web 2.0

Encarando o DGuitar

O que é o OpenDocument Format

Usa Firefox? Expanda-o

Sucata - Que SO usar em PCs antigos?

Leitura recomendada

Traduzindo software com qualidade

Instalando o Biblioteca Livre - BIBLIVRE

Taskwarrior, o Guerreiro das Tarefas - Gerenciar sua Lista TODO no Terminal

Instalação do Webmin no Slackware Linux

MySQL e PHPMyAdmin no Slackware

  
Comentários
[1] Comentário enviado por mbsalgueiro em 03/01/2007 - 09:56h

Muito interesante esse programa Pebrot!!!
nunca tinha ouvido falar!! gostei do artigo esta de parabens!!!!!
e viva o linux!

[2] Comentário enviado por removido em 03/01/2007 - 10:00h

recomendo que deem uma olhada no msnp http://msnp.sourceforge.net/ ele é escrito em python e usa curses, é muito bonito e bem feito, levicimo e um forte concorrente.

[3] Comentário enviado por flipe em 03/01/2007 - 11:11h

o gaim também liberou uma versão para modo texto.

[4] Comentário enviado por fsamoreira em 03/01/2007 - 12:02h

o problema que eu encontrei no msnp é principalmente o fato de que a última atualização dele é de janeiro de 2004. ou seja, a 3 anos que não mechem nele

[5] Comentário enviado por tenchi em 03/01/2007 - 17:59h

Insdispensável: Screen.
Cliente msn tem o tmsnc.
Excelente artigo.

[6] Comentário enviado por fsamoreira em 03/01/2007 - 18:13h

do screen eu pretendo falar depois, estou estudando algumas opções avançadas dele

[7] Comentário enviado por birilo em 03/01/2007 - 21:40h

Legal a intenção do artigo, mas muito enrrolado e repetitivo..
recomendo ser mais objetivo nos próximos...

Agora... configuração perfeita não pode faltar o screen... =)

[]'s

Danilo

[8] Comentário enviado por aniltonf em 04/01/2007 - 08:28h

Olá blehhh, fixe o seu artigo, e eu que gosto do preto e branco, aliás, base do linux, e que tenho sempre muitos problemas com o MSN, gostava muito de utilizar este PEBROT, mas;
Não consigo sequer instalar o software. Atenção para o erro.
____________________________________________________
escjpc:/home/afernandes/Desktop/pebrot-0.8.8 # python setup.py install
Traceback (most recent call last):
File "setup.py", line 8, in ?
from distutils.core import setup
ImportError: No module named distutils.core
escjpc:/home/afernandes/Desktop/pebrot-0.8.8 # ll
total 80
-rwxr-xr-x 1 1002 users 327 2005-08-15 18:29 AUTHORS
-rwxr-xr-x 1 1002 users 12836 2006-04-28 23:28 ChangeLog
-rw-r--r-- 1 1002 users 18003 2005-08-15 18:29 COPYING
drwxr-xr-x 5 1002 users 176 2006-04-28 23:42 i18n
-rwxr-xr-x 1 1002 users 779 2005-08-15 18:29 INSTALL
drwxr-xr-x 2 1002 users 128 2006-04-28 23:42 logos
-rwxr-xr-x 1 1002 users 300 2005-08-15 18:29 pebrot
-rwxr-xr-x 1 1002 users 10214 2005-08-15 18:29 pebrotrc
-rw-r--r-- 1 1002 users 256 2006-04-28 23:42 PKG-INFO
drwxr-xr-x 2 1002 users 160 2006-04-28 23:42 pypebrot
-rwxr-xr-x 1 1002 users 8402 2005-08-15 18:29 README
-rwxr-xr-x 1 1002 users 1466 2005-08-15 18:29 setup.py
drwxr-xr-x 3 1002 users 200 2006-04-28 23:42 utils
escjpc:/home/afernandes/Desktop/pebrot-0.8.8 # ____________________________________________________

Tirei este trecho da consola.

Conseguia ajudar-me, a resolver o problema,
posso desabilitar a parte que pede o "distutils.core", mas acho que o soft não funcionava.

[9] Comentário enviado por fsamoreira em 04/01/2007 - 11:14h

não tenho certeza, mas creio que o problema é a versão do python que está usando está desatualizada. use o comando $ python -V para conferir a versão.

procure instalar também um pacote chamado python-setuptools

[10] Comentário enviado por aniltonf em 04/01/2007 - 19:38h

Tenho a certeza que não é isso, o meu python veio com o suse 10.1, e tem versão 2.4...

Acho que o ficheiro "distutils.core" está em falta. Não existe esse ficheiro no pacote do pebrot?

[11] Comentário enviado por EdDeAlmeida em 04/01/2007 - 20:21h

Muito bom o pebrot! Gosto de programar no console, mas como tenho de dar assistência a alguns clientes via MSN, acabava ficando preso ao X. Agora posso preogramar em paz, com o pebrot noutro terminal. Vou hackear o código para ver se implemento algumas coisas, como avisos quando chegam mensagens e coisas assim.
Obrigado.

[12] Comentário enviado por tenchi em 07/01/2007 - 18:36h

Ah, você disse que vai escrever sobre o screen. Não sei se você já viu, mas no site do Aurélio tem bastande coisa sobre este programa. Na verdade foi lá que eu aprendi sobre o screen.

Link: http://aurelio.net/doc/coluna/

Falows...,

Ah, e eu "disconcordo" inteiramente do título deste artigo. Quem disse que um terminal precisa ser necessáriamente preto-e-branco?? ;)

Eh zoeira...

[13] Comentário enviado por GilsonDeElt em 14/01/2007 - 01:44h

Muito bom!
Valeu!

[14] Comentário enviado por botinha em 15/01/2007 - 20:24h

Amigo muito bom o artigo, acho que você deveria se puder encrementar o artigo, como associar sons e beeps.


Muito bom.......

[15] Comentário enviado por rafa-ctba em 03/06/2007 - 23:33h

Estou com o seguinte problema ao tentar entrar pelo pebrot:

Traceback (most recent call last):
File "/home/daniel/.pebrot/pebrot", line 16, in <module>
pypebrot.pebrot.main()
File "/home/daniel/Desktop/pebrot-0.8.7/pypebrot/pebrot.py", line 1886, in main
curses.wrapper( gogogo )
File "curses/wrapper.py", line 44, in wrapper
File "/home/daniel/Desktop/pebrot-0.8.7/pypebrot/pebrot.py", line 1848, in gogogo
con.loopInput()
File "/home/daniel/Desktop/pebrot-0.8.7/pypebrot/pebrot.py", line 1524, in loopInput
self.oneStep()
File "/home/daniel/Desktop/pebrot-0.8.7/pypebrot/pebrot.py", line 1454, in oneStep
st= self.Text.getLine( self.handleInput, self.step )
File "/home/daniel/Desktop/pebrot-0.8.7/pypebrot/ui.py", line 250, in getLine
idleFunc()
File "/home/daniel/Desktop/pebrot-0.8.7/pypebrot/MSN.py", line 920, in step
self.processMsgs()
File "/home/daniel/Desktop/pebrot-0.8.7/pypebrot/MSN.py", line 1004, in processMsgs
msg= Msg( res[1] )
File "/home/daniel/Desktop/pebrot-0.8.7/pypebrot/MSN.py", line 512, in __init__
expLen= len( MSGS[self.type] )+1
KeyError: 'NOT'

Desde ja agradeço!

[16] Comentário enviado por oliviofarias em 23/11/2008 - 15:16h

Me diga uma cosia, como coloco um desenho novo naquela abertura?

[17] Comentário enviado por lucaspolo em 21/12/2008 - 21:53h

Realmente é muito interessante esse Pebrot!
Eu ainda li um outro artigo seu sobre páginas antigas e vi sobre máquinas antigas e dicas de como monta-las, dai comecei a juntar as idéias do tico e do teco e agora to pensando em montar uma máquininha só por brincadeira...

Parabéns pelo artigo.

[18] Comentário enviado por david fonseca em 13/08/2009 - 22:34h

Amigos aki ta assim quando eu chamo o $ pebrot

david@david-ubuntu:~$ pebrot
/usr/local/lib/python2.6/dist-packages/pypebrot/MSN.py:7: DeprecationWarning: the md5 module is deprecated; use hashlib instead
import md5

Traceback (most recent call last):
File "/usr/local/bin/pebrot", line 16, in <module>
pypebrot.pebrot.main()
File "/usr/local/lib/python2.6/dist-packages/pypebrot/pebrot.py", line 1980, in main
os.mkdir( MAIN_LOG_DIR )
OSError: [Errno 13] Permission denied: '/home/david/.pebrot/logs/'


alguem pode mim ajudar???

[19] Comentário enviado por El Camaleon em 08/04/2011 - 00:29h


Sem querer reviver esse tópico .. mas eu queria uma solução para o problema acima afinal ele esta sendo o meu nos dias de hoje. Após seguir todos os passos listados acima sobre instalação depois ter ir e colocar o arquivo pebrotrc na pasta ./pebrot e enfim perceber que o pebrot vai funcionar e ficar a um passo de usá-lo acontece esse erro que o David citou.
Eu consigo entrar com meu usuário ele chega a pedir senha e entra na tela e começa a carregar quando ele esta carregando a tela simplesmente fecha e o que resta é a mensagem:

/usr/local/lib/python2.6/dist-packages/pypebrot/MSN.py:7: DeprecationWarning: the md5 module is deprecated; use hashlib instead
import md5

Traceback (most recent call last):
File "/usr/local/bin/pebrot", line 16, in <module>
pypebrot.pebrot.main()
File "/usr/local/lib/python2.6/dist-packages/pypebrot/pebrot.py", line 1886, in main
curses.wrapper( gogogo )
File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/local/lib/python2.6/dist-packages/pypebrot/pebrot.py", line 1848, in gogogo
con.loopInput()
File "/usr/local/lib/python2.6/dist-packages/pypebrot/pebrot.py", line 1524, in loopInput
self.oneStep()
File "/usr/local/lib/python2.6/dist-packages/pypebrot/pebrot.py", line 1454, in oneStep
st= self.Text.getLine( self.handleInput, self.step )
File "/usr/local/lib/python2.6/dist-packages/pypebrot/ui.py", line 250, in getLine
idleFunc()
File "/usr/local/lib/python2.6/dist-packages/pypebrot/MSN.py", line 920, in step
self.processMsgs()
File "/usr/local/lib/python2.6/dist-packages/pypebrot/MSN.py", line 1004, in processMsgs
msg= Msg( res[1] )
File "/usr/local/lib/python2.6/dist-packages/pypebrot/MSN.py", line 512, in __init__
expLen= len( MSGS[self.type] )+1
KeyError: 'NOT'

Agradeço a ajuda de todos, peço desculpas por estar revivendo esse tópico mas gostaria de ajuda. Mais uma vez obrigado.

[20] Comentário enviado por mactoia em 18/05/2011 - 10:19h

instalei o pebrot mas ele não esta criando o arquivo pebrotrc na pasta ~/.pebrot. ele sempre diz q vai criar mas termina não criando.

[21] Comentário enviado por khyron em 11/05/2012 - 11:37h

bom dia!...

tb estou com esse problema...alguem poderia ajudar ???


$pebrot
/usr/local/lib/python2.6/dist-packages/pypebrot/MSN.py:7: DeprecationWarning: the md5 module is deprecated; use hashlib instead

Traceback (most recent call last):
File "/usr/local/bin/pebrot", line 16, in <module>
pypebrot.pebrot.main()
File "/usr/local/lib/python2.6/dist-packages/pypebrot/pebrot.py", line 1886, in main
File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/local/lib/python2.6/dist-packages/pypebrot/pebrot.py", line 1822, in gogogo
File "/usr/local/lib/python2.6/dist-packages/pypebrot/pebrot.py", line 756, in getPassword
File "/usr/local/lib/python2.6/dist-packages/pypebrot/pebrot.py", line 483, in fatalError


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts