Source code for zot.bot
# zot/bot.py
#
#
""" basic package for the program. """
__copyright__ = "Copyright 2015, B.H.J Thate"
## IMPORTS
from zot.utils import get_name, short_date, get_type
from zot.errors import RemoteDisconnect
from zot.dispatcher import DISPATCHER
from zot.defines import BLA, ENDC
from zot.object import Object
from zot.runtime import kernel, fleet
import logging
import socket
import time
## BOTS
[docs]class BOT(DISPATCHER):
""" Base Bot class. """
def __init__(zelf, *args, **kwargs):
DISPATCHER.__init__(zelf, *args, **kwargs)
zelf._start = time.time()
zelf.channels = ["#zotbot", ]
[docs] def say(zelf, *args, **kwargs): print(args[1])
## CHANNELS
[docs] def announce(zelf, *args, **kwargs):
""" announce on channels. """
zelf.wait()
logging.info("# announce %s" % " ".join(zelf.channels))
for channel in zelf.channels: zelf.say(channel, args[0])
[docs] def join(zelf, *args, **kwargs): pass
[docs] def join_channels(zelf, *args, **kwargs):
""" join channels. """
for channel in zelf.channels: zelf.join(channel)
## TESTBOT
[docs]class TESTBOT(BOT):
""" USE WITH Bot.put() and Bot.read(). """
testing = True
[docs] def say(zelf, *args, **kwargs): logging.warn(args[1])
[docs] def event(zelf, *args, **kwargs):
o = Object()
o.origin = "test@zot"
o._target = zelf
o.loglevel = "warning"
return o