def __init__(self, nick='Domar', nickpass='******', server='irc.mibbit.com', port=6667, channel='#domar'): super(Domar, self).__init__(nick=nick, name='Domar bot, http://bitbucket.org/brcha/domar2', channels=[ channel, ], nickpass=nickpass, command_prefix=['!', '\.'], verbose=False) self.server = server self.port = port self.db = DBManagerProcess(DB('erep.db')) self.db.start() self.admins = self.db.get('admins', ['Hostilian', 'Rx_Queen']) self.owner = self.db.get('owner', ['Hostilian']) self.channels = self.db.get('channels', self.channels) self.db['admins'] = self.admins self.db['owner'] = self.owner self.db['channels'] = self.channels # Initialize citizens cache array citizens = self.db.get('citizens', []) self.db['citizens'] = citizens # Initialize RSS channels array rss_channels = self.db.get('rss_channels', []) self.db['rss_channels'] = rss_channels self.rssFeeder = eRepublikRSSFeeder(self, 60) # get RSS every 60 seconds
class Domar(IRCBot): def __init__(self, nick='Domar', nickpass='******', server='irc.mibbit.com', port=6667, channel='#domar'): super(Domar, self).__init__(nick=nick, name='Domar bot, http://bitbucket.org/brcha/domar2', channels=[ channel, ], nickpass=nickpass, command_prefix=['!', '\.'], verbose=False) self.server = server self.port = port self.db = DBManagerProcess(DB('erep.db')) self.db.start() self.admins = self.db.get('admins', ['Hostilian', 'Rx_Queen']) self.owner = self.db.get('owner', ['Hostilian']) self.channels = self.db.get('channels', self.channels) self.db['admins'] = self.admins self.db['owner'] = self.owner self.db['channels'] = self.channels # Initialize citizens cache array citizens = self.db.get('citizens', []) self.db['citizens'] = citizens # Initialize RSS channels array rss_channels = self.db.get('rss_channels', []) self.db['rss_channels'] = rss_channels self.rssFeeder = eRepublikRSSFeeder(self, 60) # get RSS every 60 seconds def run(self): super(Domar, self).run(host=self.server, port=self.port) def after_connect(self): # Initialize modules HelloModule(self) CurseModule(self) CitizenInfoModule(self) CitizenLinkModule(self) CitizenDonateModule(self) CitizenFightModule(self) RSSEnableModule(self) RSSDisableModule(self) CitizenHealthIncreaseModule(self) CitizenHappinessIncreaseModule(self) CondorsPlataModule(self) # Army modules army_modules.Define(self) army_modules.AddGeneral(self) army_modules.RemoveGeneral(self) army_modules.BindChannel(self) army_modules.UnbindChannel(self) army_modules.AddMember(self) army_modules.RemoveMember(self) army_modules.ListMembers(self) army_modules.ListGenerals(self) army_modules.SetOrder(self) army_modules.Order(self) # Start RSS feeder self.rssFeeder.start() def join(self, channel, key=None): # Keep track of channels to make them persistent if not channel.startswith('#'): return super(Domar, self).join(channel, key) if not channel in self.db['channels']: channels = self.db['channels'] channels.append(channel) self.db['channels'] = channels def part(self, channel): # Keep track of channels to make them persistent if not channel.startswith('#'): return super(Domar, self).part(channel) if channel in self.db['channels']: channels = self.db['channels'] channels.remove(channel) self.db['channels'] = channels def handle_close(self): self.rssFeeder.die = True self.rssFeeder.join(65) self.rssFeeder.terminate() self.db.die() super(Domar, self).__del__() def __del__(self): self.rssFeeder.terminate() super(Domar, self).__del__()