Plugin Respondendo: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
(Nova página: Do final do microtutorial anterior, 1) arrume o arquivo plugins/Minimum/plugin.py para que a classe Minimum, herdeira de callbacks.Plugin, fique assim (basta adicionar poucas linhas ...)
 
mSem resumo de edição
 
(5 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
Do final do microtutorial anterior,
Do final do microtutorial anterior,


1) arrume o arquivo plugins/Minimum/plugin.py
===1) arrume o arquivo plugins/Minimum/plugin.py===
para que a classe Minimum, herdeira de callbacks.Plugin, fique assim
 
Para que a classe Minimum, herdeira de callbacks.Plugin, fique assim
(basta adicionar poucas linhas à classe que já vem por padrão no plugin wizard):
(basta adicionar poucas linhas à classe que já vem por padrão no plugin wizard):


Linha 12: Linha 13:
         irc.reply("This is my personal response. Eh aqui que eu respondo.")
         irc.reply("This is my personal response. Eh aqui que eu respondo.")
     respond = wrap(respond)</pre>
     respond = wrap(respond)</pre>
===2) Faça-o responder utilizando módulos da instalação Python ===
No próprio plugin.py, basta importar o módulo e fazer a função na classe:
<pre>import random
class Minimum(callbacks.Plugin):
    """The minimum a plugin must have to respond."""
    def rand01(self,irc,msg,args):
        """Return 0-1 random float value """
        irc.reply(str(random.random()))
    def respond(self, irc, msg, args):
        """Gives a response when called"""
        irc.reply("This is my personal response. Eh aqui que eu respondo.")
    respond = wrap(respond)</pre>
===3) Inicie o bot e use o plugin===
<pre>22:57 < o0o0o> coBot205: unload Minimum
22:57 < coBot205> o0o0o: The operation succeeded.
22:57 < o0o0o> coBot205: load Minimum
22:57 < coBot205> o0o0o: The operation succeeded.
22:57 < o0o0o> coBot205: list minimum
22:57 < coBot205> o0o0o: rand01 and respond
22:57 < o0o0o> coBot205: rand01
22:57 < coBot205> o0o0o: 0.0833759026193
22:57 < o0o0o> coBot205: rand01
22:57 < coBot205> o0o0o: 0.121191466542
22:57 < o0o0o> coBot205: respond
22:57 < coBot205> o0o0o: This is my personal response. Eh aqui que eu respondo.</pre>
===4) Um parâmetro de entrada===
<pre>class Minimum(callbacks.Plugin):
    """The minimum a plugin must have to respond."""
    def oneparam(self, irc, msg, args, n):
        """[<numero de elementos>]
       
        Returns a list with <number of elements>"""
        irc.reply(str(range(n)))
    oneparam = wrap(oneparam, [additional(('int', 'number of elements'), 5)])</pre>
===5) Vários parâmetros de entrada===
Neste caso, o primeiro parâmetro é do tipo especificado. Os parâmetros
seguintes são agrupados na forma de uma lista de strings. Portanto:
<pre>    def someparams(self, irc, msg, args, n, m):
        """[<numero de elementos> <numero de elementos2>]
       
        Returns lists with gine lengths"""
        #irc.reply(str( range(n)+range(m[1])))
        lists= str(range(n)) # first argument is of the type desired
        for element in m:
            lists += str(range(int(element))) # Because m is a list of strings
        irc.reply(lists)
    someparams = wrap(someparams, ['int',many('anything')])</pre>
===X) Feito. Faça testes.===
O segundo commit do repositório contempla estas mudanças:
    $ git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/supyTutorial
[[Category:Lab Macambira]]

Edição atual tal como às 23h07min de 10 de dezembro de 2011

Do final do microtutorial anterior,

1) arrume o arquivo plugins/Minimum/plugin.py

Para que a classe Minimum, herdeira de callbacks.Plugin, fique assim (basta adicionar poucas linhas à classe que já vem por padrão no plugin wizard):

class Minimum(callbacks.Plugin):
    """The minimum a plugin must have to respond."""

    def respond(self, irc, msg, args):
        """Gives a response when called"""
        irc.reply("This is my personal response. Eh aqui que eu respondo.")
    respond = wrap(respond)


2) Faça-o responder utilizando módulos da instalação Python

No próprio plugin.py, basta importar o módulo e fazer a função na classe:

import random
class Minimum(callbacks.Plugin):
    """The minimum a plugin must have to respond."""

    def rand01(self,irc,msg,args):
        """Return 0-1 random float value """
        irc.reply(str(random.random()))

    def respond(self, irc, msg, args):
        """Gives a response when called"""
        irc.reply("This is my personal response. Eh aqui que eu respondo.")
    respond = wrap(respond)

3) Inicie o bot e use o plugin

22:57 < o0o0o> coBot205: unload Minimum
22:57 < coBot205> o0o0o: The operation succeeded.
22:57 < o0o0o> coBot205: load Minimum
22:57 < coBot205> o0o0o: The operation succeeded.
22:57 < o0o0o> coBot205: list minimum
22:57 < coBot205> o0o0o: rand01 and respond
22:57 < o0o0o> coBot205: rand01
22:57 < coBot205> o0o0o: 0.0833759026193
22:57 < o0o0o> coBot205: rand01
22:57 < coBot205> o0o0o: 0.121191466542
22:57 < o0o0o> coBot205: respond
22:57 < coBot205> o0o0o: This is my personal response. Eh aqui que eu respondo.

4) Um parâmetro de entrada

class Minimum(callbacks.Plugin):
    """The minimum a plugin must have to respond."""

    def oneparam(self, irc, msg, args, n):
        """[<numero de elementos>]
        
        Returns a list with <number of elements>"""
        irc.reply(str(range(n)))
    oneparam = wrap(oneparam, [additional(('int', 'number of elements'), 5)])

5) Vários parâmetros de entrada

Neste caso, o primeiro parâmetro é do tipo especificado. Os parâmetros seguintes são agrupados na forma de uma lista de strings. Portanto:

    def someparams(self, irc, msg, args, n, m):
        """[<numero de elementos> <numero de elementos2>]
        
        Returns lists with gine lengths"""
        #irc.reply(str( range(n)+range(m[1])))
        lists= str(range(n)) # first argument is of the type desired
        for element in m:
            lists += str(range(int(element))) # Because m is a list of strings
        irc.reply(lists)

    someparams = wrap(someparams, ['int',many('anything')])

X) Feito. Faça testes.

O segundo commit do repositório contempla estas mudanças:

   $ git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/supyTutorial