Package gozerbot :: Module botbase
[hide private]
[frames] | no frames]

Source Code for Module gozerbot.botbase

  1  # gozerbot/botbase.py 
  2  # 
  3  # 
  4   
  5  """ bot base class """ 
  6   
  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.channels import Channels 
 13  from gozerbot.datadir import datadir 
 14  from gozerbot.pdod import Pdod 
 15  from gozerbot.config import config 
 16  from gozerbot.runner import runners_start 
 17  import time, threading, os, types 
 18   
19 -class BotBase(object):
20
21 - def __init__(self, name='main', owner=[]):
22 self.name = name 23 self.owner = owner 24 self.type = "irc" 25 self.nick = "" 26 self.orignick = "" 27 self.server = "" 28 self.port = None 29 self.ssl = False 30 self.password = "" 31 self.ipv6 = False 32 self.blocking = True 33 self.lastoutput = 0 34 self.stopped = False 35 self.connected = False 36 self.connecting = False 37 self.connectok = threading.Event() 38 self.starttime = time.time() 39 self.nrevents = 0 40 self.gcevents = 0 41 self.less = Less(5) 42 self.userchannels = Dol() 43 self.channels = Channels(datadir + os.sep + '%s.channels' % self.name) 44 self.userhosts = PersistState(datadir + os.sep + '%s.userhosts' % \ 45 self.name) 46 self.state = Pdod(datadir + os.sep + '%s.state' % self.name) 47 if not self.state.has_key('joinedchannels'): 48 self.state['joinedchannels'] = [] 49 if not self.state.has_key('allowed'): 50 self.state['allowed'] = [] 51 self.throttle = [] 52 self.jabber = False 53 self.google = False 54 runners_start()
55
56 - def ownercheck(self, ievent, txt=None):
57 if self.jabber: 58 owner = config['jabberowner'] 59 else: 60 owner = config['owneruserhost'] 61 if type(owner) == types.ListType: 62 if ievent.userhost in owner: 63 return 1 64 elif owner == ievent.userhost: 65 return 1 66 else: 67 if not txt: 68 ievent.reply("only owner (see config file) is allowed \ 69 to perform this command") 70 else: 71 ievent.reply("only owner (see config file) %s" % txt) 72 return 0
73
74 - def save(self):
75 self.channels.save() 76 self.userhosts.save() 77 self.state.save()
78
79 - def stop(self):
80 self.stopped = True 81 rlog(10, self.name, 'stopped')
82
83 - def exit(self):
84 pass
85
86 - def connect(self, nick, server, port=6667, password="", ipv6=0, \ 87 ssl=0, reconnect=True):
88 pass
89
90 - def joinchannels(self):
91 pass
92
93 - def connectwithjoin(self, nick, server, port=6667, password="", ipv6=0, \ 94 ssl=0, reconnect=True):
95 self.connect(nick, server, port, password, ipv6, ssl, reconnect) 96 self.joinchannels()
97
98 - def broadcast(self):
99 pass
100
101 - def send(self, txt):
102 pass
103
104 - def shutdown(self):
105 pass
106