On Tue, 03 Jul 2007 09:46:59 -0000, ddtm <[EMAIL PROTECTED]> wrote: >I'm using an example of IRC bot (_ttp://twistedmatrix.com/projects/ >words/documentation/examples/ircLogBot.py) 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: http://twistedmatrix.com/projects/core/documentation/howto/time.html Or you can refer to the generated API documentation: http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.IReactorTime.html http://twistedmatrix.com/documents/current/api/twisted.internet.task.LoopingCall.html Hope this helps, Jean-Paul -- http://mail.python.org/mailman/listinfo/python-list