Python IRC bot using Twisted

Jean-Paul Calderone exarkun at
Tue Jul 3 14:01:22 CEST 2007

On Tue, 03 Jul 2007 09:46:59 -0000, ddtm < at> wrote:
>I'm using an example of IRC bot (_ttp://
>words/documentation/examples/ to create my own bot. But I
>have a problem. I'm trying to make my bot send messages periodically.
>But I can't find a way of adding Timer or something similar to my code
>so that it could work. Could somebody modify an example to make IRC
>bot send anything to chat every 20 seconds?
>P.S. Timer should not lock the main program (I think it should work in
>other thread or so)
>P.P.S. Could somebody write a code of delay between messages too? In
>pseudocode it looks like this:
>  sleep(20)
>  sendMessage(channel,'lopata')
>This delay should be non-locking too.
>P.P.P.S. Sorry for my bad English (and for a noob question too)

You can use reactor.callLater to schedule a one-time event to happen at
some future point:

    reactor.callLater(20, sendMessage, channel, 'lopata')

There is also a utility class, twisted.internet.task.LoopingCall, which
you can use to schedule an event to occur repeatedly at some interval:

    call = LoopingCall(sendMessage, channel, 'lopata')
    loopDeferred = call.start(20)

You can read more about these APIs in the scheduling howto:

Or you can refer to the generated API documentation:

Hope this helps,


More information about the Python-list mailing list