1
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
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
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
78
80 self.stopped = True
81 rlog(10, self.name, 'stopped')
82
85
86 - def connect(self, nick, server, port=6667, password="", ipv6=0, \
87 ssl=0, reconnect=True):
89
92
93 - def connectwithjoin(self, nick, server, port=6667, password="", ipv6=0, \
94 ssl=0, reconnect=True):
97
100
101 - def send(self, txt):
103
106