[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] IRC Bot em shellscripting
From: |
Flavio Junior |
Subject: |
Re: [shell-script] IRC Bot em shellscripting |
Date: |
Sat, 14 Feb 2009 18:12:42 -0200 |
Defina o que tu vai usar como comando do bot, por exemplo se o bot vai
responder a chamadas do seu nome, expressoes !expressao ou ~expressao
@expressao....
Digamos que tenhas escolhido ~expressao, todas expressoes q tu
programar tu vai adicionar num grep, tipo:
while read LINHA; do
if [[ $LINHA == /~expressao1/ ]]; then
echo Ei, expressao1 detecada > ~/irc.freenode.net/#debian/in
fi
if [[ $LINHA == /~expressao2/ ]]; then
echo Adivinha agora? > ~/irc.freenode.net/#debian/in
fi
done < <(tail -f ~/irc.freenode.net/#debian/out | grep -E
'~(expressao1|expressao2|expressao3|expressao4)')
Acho que isso funcionaria bem.. claro que filtrar o grep -E ali melhor
vai ajudar.
--
Flavio do Carmo Junior aka waKKu
#bash-br @ irc.freenode.net
2009/2/14 Kurt Kraut <address@hidden>:
> Aloha,
>
> Esses dias eu perguntei como rolar a leitura de um arquivo texto todo
> em shell scripting e fui muito bem respondido pelo MrBiTS, Flavio
> Junior, JCNeves. Porém, o exemplo que eu dei não era muito ilustrativo
> da minha pergunta e achei um que toca justamente na minha dificuldade
> de interpretar logs e arquivos texto que modificam seu conteúdo
> (adicionando linhas) o tempo todo.
>
> Eu gostaria de fazer um bot de IRC com o programa ii:
> http://www.suckless.org/programs/ii.html - O que esse programa faz é
> bem simples e poderoso.
>
> Se você acessar a rede irc.freenode.net no canal #debian, ele irá
> criar um diretório local de nome ~/irc.freenode.net/#debian onde
> haverá dois arquivos: in e out.
>
> Se dermos cat irc.freenode.net/#debian/out veremos todo o output do
> canal, ou seja, toda a conversa desde que o bot entrou nele. Caso
> queiramos enviar uma mensagem para o canal basta:
>
> echo "hello world" > ~/irc.freenode.net/#debian/in
>
> Isso permite que bots de IRC sejam feitos com a mera manipulação de
> arquivos texto. Porém, minha dificuldade é, como ficar lendo o arquivo
> 'out' para poder interpretá-lo? Para nosso BOT hipotético, eu gostaria
> de simular a seguinte ocasião:
>
> <KurtKraut> meubot: você gosta de shell?
> <meubot> KurtKraut: Sim. Pois, como diz um amigo meu, para programar
> em Shell não preciso de Texaco.
>
> Eu poderia fazer um loop ficar dando tail -1 o tempo todo e dar um
> grep em busca de 'gosta de shell'. Porém, se entre um loop e outro o
> bot tiver recebido duas linhas de conversa, ele só interpretaria a
> última. Atentem que o arquivo 'out' cresce constantemente.
>
> Enfim, alguma sugestão? Se algo não ficou claro, por favor, basta perguntar.
>
> Desde já agradeço pela atenção,
>
> Kurt Kraut
>
>