Add some modelines and fix indentation, I hope.
This commit is contained in:
parent
ec9acdd2ee
commit
0c17196b32
@ -17,11 +17,12 @@ class Module(object):
|
|||||||
self.config = config
|
self.config = config
|
||||||
self.modlist = modlist
|
self.modlist = modlist
|
||||||
self.register_handlers(server)
|
self.register_handlers(server)
|
||||||
|
# Should do some error handling here.
|
||||||
self.botserver = config.get('IRC', 'server')
|
self.botserver = config.get('IRC', 'server')
|
||||||
self.botport = config.getint('IRC', 'port')
|
self.botport = config.getint('IRC', 'port')
|
||||||
self.botnick = config.get('IRC', 'nick')
|
self.botnick = config.get('IRC', 'nick')
|
||||||
self.botircname = config.get('IRC', 'name')
|
self.botircname = config.get('IRC', 'name')
|
||||||
self.rehash = rehash
|
self.rehash = rehash # Is there another way to call the rehash function in dr.botzo?
|
||||||
|
|
||||||
def register_handlers(self, server):
|
def register_handlers(self, server):
|
||||||
# This is called by __init__ and sets up server.add_global_handlers. Classes
|
# This is called by __init__ and sets up server.add_global_handlers. Classes
|
||||||
@ -136,3 +137,5 @@ class Module(object):
|
|||||||
# IRC functionality. This is called by the default on_pubmsg and on_privmsg
|
# IRC functionality. This is called by the default on_pubmsg and on_privmsg
|
||||||
|
|
||||||
print "looks like someone forgot to implement do!"
|
print "looks like someone forgot to implement do!"
|
||||||
|
|
||||||
|
# kate: indent-mode python;indent-width 4;replace-tabs on;
|
||||||
|
19
dr.botzo.py
19
dr.botzo.py
@ -32,7 +32,7 @@ from modules import *
|
|||||||
|
|
||||||
modlist = []
|
modlist = []
|
||||||
|
|
||||||
moduleList = [ "Countdown", "Dice", "IrcAdmin", "GoogleTranslate", "Seen" ]
|
moduleList = [ "Countdown", "Dice", "IrcAdmin", "GoogleTranslate", "Seen", "FactFile" ]
|
||||||
modObjs = []
|
modObjs = []
|
||||||
|
|
||||||
class DrBotServerConnection(irclib.ServerConnection):
|
class DrBotServerConnection(irclib.ServerConnection):
|
||||||
@ -47,6 +47,9 @@ class DrBotIRC(irclib.IRC):
|
|||||||
self.connections.append(c)
|
self.connections.append(c)
|
||||||
return c
|
return c
|
||||||
|
|
||||||
|
# This finds all the currently loaded modules that start with "modules" (as all
|
||||||
|
# the bot modules are currently in a subfolder called modules) and calls
|
||||||
|
# reload() on them. This will only work if the folder name doesn't change.
|
||||||
def rehash():
|
def rehash():
|
||||||
myre = re.compile('modules')
|
myre = re.compile('modules')
|
||||||
for i in sys.modules:
|
for i in sys.modules:
|
||||||
@ -54,15 +57,23 @@ def rehash():
|
|||||||
if currMod is not None and myre.search(i):
|
if currMod is not None and myre.search(i):
|
||||||
reload(currMod)
|
reload(currMod)
|
||||||
|
|
||||||
|
# Remove the pubmsg and privmsg handlers from the irclib object.
|
||||||
|
# If we don't do this we will see phantom messages
|
||||||
for obj in modObjs:
|
for obj in modObjs:
|
||||||
server.remove_global_handler('pubmsg', obj.on_pubmsg)
|
server.remove_global_handler('pubmsg', obj.on_pubmsg)
|
||||||
server.remove_global_handler('privmsg', obj.on_privmsg)
|
server.remove_global_handler('privmsg', obj.on_privmsg)
|
||||||
|
|
||||||
reload_modules(moduleList)
|
reload_modules(moduleList)
|
||||||
|
|
||||||
|
# Create the actual module objects, which will readd the handlers we removed
|
||||||
|
# earlier, and add them to the modObjs list, which we can use during the next
|
||||||
|
# rehash to remove the handlers.
|
||||||
def reload_modules(moduleList):
|
def reload_modules(moduleList):
|
||||||
for mod in moduleList:
|
for mod in moduleList:
|
||||||
cls = globals()[mod]
|
cls = globals()[mod]
|
||||||
|
# Importing the names imports a module since the file name and class
|
||||||
|
# name are the same. Look for the class definition in each module with
|
||||||
|
# the same name and create that object.
|
||||||
if inspect.ismodule(cls):
|
if inspect.ismodule(cls):
|
||||||
for name, obj in inspect.getmembers(cls):
|
for name, obj in inspect.getmembers(cls):
|
||||||
if inspect.isclass(obj) and re.search(mod, obj.__name__):
|
if inspect.isclass(obj) and re.search(mod, obj.__name__):
|
||||||
@ -70,8 +81,6 @@ def reload_modules(moduleList):
|
|||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
modObjs.append(cls(config, server, modlist, rehash))
|
modObjs.append(cls(config, server, modlist, rehash))
|
||||||
print "-------MODOBJS: "
|
|
||||||
print modObjs
|
|
||||||
|
|
||||||
# read config file
|
# read config file
|
||||||
|
|
||||||
@ -111,7 +120,5 @@ reload_modules(moduleList)
|
|||||||
# loop forever
|
# loop forever
|
||||||
irc.process_forever()
|
irc.process_forever()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# vi:tabstop=4:expandtab:autoindent
|
# vi:tabstop=4:expandtab:autoindent
|
||||||
|
# kate: indent-mode python;indent-width 4;replace-tabs on;
|
||||||
|
@ -73,3 +73,4 @@ class Countdown(Module):
|
|||||||
connection.privmsg(replypath, relstr)
|
connection.privmsg(replypath, relstr)
|
||||||
except NoOptionError: pass
|
except NoOptionError: pass
|
||||||
|
|
||||||
|
# kate: indent-mode python;indent-width 4;replace-tabs on;
|
||||||
|
@ -83,3 +83,4 @@ class Dice(Module):
|
|||||||
else:
|
else:
|
||||||
connection.privmsg(replypath, result)
|
connection.privmsg(replypath, result)
|
||||||
|
|
||||||
|
# kate: indent-mode python;indent-width 4;replace-tabs on;
|
||||||
|
@ -35,3 +35,4 @@ class FactFile(Module):
|
|||||||
|
|
||||||
except NoOptionError: pass
|
except NoOptionError: pass
|
||||||
|
|
||||||
|
# kate: indent-mode python;indent-width 4;replace-tabs on;
|
||||||
|
@ -47,3 +47,4 @@ class GoogleTranslate(Module):
|
|||||||
else:
|
else:
|
||||||
connection.privmsg(replypath, translation)
|
connection.privmsg(replypath, translation)
|
||||||
|
|
||||||
|
# kate: indent-mode python;indent-width 4;replace-tabs on;
|
||||||
|
@ -144,3 +144,4 @@ class IrcAdmin(Module):
|
|||||||
else:
|
else:
|
||||||
connection.privmsg(replypath, replystr)
|
connection.privmsg(replypath, replystr)
|
||||||
|
|
||||||
|
# kate: indent-mode python;indent-width 4;replace-tabs on;
|
||||||
|
@ -38,3 +38,4 @@ class Seen(Module):
|
|||||||
connection.privmsg(replypath, replystr)
|
connection.privmsg(replypath, replystr)
|
||||||
except NoOptionError: pass
|
except NoOptionError: pass
|
||||||
|
|
||||||
|
# kate: indent-mode python;indent-width 4;replace-tabs on;
|
||||||
|
@ -16,6 +16,9 @@ for i in files:
|
|||||||
lastDot = i.rfind(".")
|
lastDot = i.rfind(".")
|
||||||
i = i[0:lastDot]
|
i = i[0:lastDot]
|
||||||
__all__.append(i)
|
__all__.append(i)
|
||||||
|
# This line is essentially: from i import *
|
||||||
__import__(i, locals(), globals(), ["*"])
|
__import__(i, locals(), globals(), ["*"])
|
||||||
|
|
||||||
__all__ = list(set(__all__))
|
__all__ = list(set(__all__))
|
||||||
|
|
||||||
|
# kate: indent-mode python;indent-width 4;replace-tabs on;
|
||||||
|
Loading…
Reference in New Issue
Block a user