7
from gozerbot.generic import rlog
8
from gozerbot.less import Less
9
from gozerbot.pdol import Pdol
10
from gozerbot.dol import Dol
11
from gozerbot.persiststate import PersistState
12
from gozerbot.runner import runner
13
from gozerbot.eventhandler import commandhandler
14
from gozerbot.channels import Channels
15
from gozerbot.datadir import datadir
16
from gozerbot.pdod import Pdod
17
from gozerbot.config import config
18
import time, threading, os, types
20
class BotBase(object):
22
def __init__(self, name='main', owner=[]):
36
self.connected = False
37
self.connecting = False
38
self.connectok = threading.Event()
39
self.starttime = time.time()
43
self.userchannels = Dol()
44
self.channels = Channels(datadir + os.sep + '%s.channels' % self.name)
45
self.userhosts = PersistState(datadir + os.sep + '%s.userhosts' % \
47
self.state = Pdod(datadir + os.sep + '%s.state' % self.name)
48
if not self.state.has_key('joinedchannels'):
49
self.state['joinedchannels'] = []
50
if not self.state.has_key('allowed'):
51
self.state['allowed'] = []
55
commandhandler.start()
57
def ownercheck(self, ievent, txt=None):
59
owner = self.owner or config['jabberowner']
61
owner = self.owner or config['owneruserhost']
62
if type(owner) == types.ListType:
63
if ievent.userhost in owner:
65
elif owner == ievent.userhost:
69
ievent.reply("only owner (see config file) is allowed \
70
to perform this command")
72
ievent.reply("only owner (see config file) %s" % txt)
82
rlog(10, self.name, 'stopped')
90
def joinchannels(self):