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

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
mSem resumo de edição
mSem resumo de edição
 
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 13: 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