load plugins using built-in compile() and eval() instead of imp.load_source() => no generated .pyc files
This commit is contained in:
parent
5ea26b8ff7
commit
5c9c8704c2
10
bot.py
10
bot.py
|
@ -7,7 +7,6 @@ channel = "#cobol"
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import glob
|
import glob
|
||||||
import imp
|
|
||||||
import re
|
import re
|
||||||
import thread
|
import thread
|
||||||
import Queue
|
import Queue
|
||||||
|
@ -43,9 +42,10 @@ def reload_plugins():
|
||||||
for filename in glob.glob("core/*.py") + glob.glob("plugins/*.py"):
|
for filename in glob.glob("core/*.py") + glob.glob("plugins/*.py"):
|
||||||
mtime = os.stat(filename).st_mtime
|
mtime = os.stat(filename).st_mtime
|
||||||
if mtime != plugin_mtimes.get(filename):
|
if mtime != plugin_mtimes.get(filename):
|
||||||
shortname = os.path.splitext(os.path.basename(filename))[0]
|
|
||||||
try:
|
try:
|
||||||
plugin = imp.load_source(shortname, filename)
|
code = compile(open(filename, 'U').read(), filename, 'exec')
|
||||||
|
locals = {}
|
||||||
|
eval(code, locals)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print ' error:', e
|
print ' error:', e
|
||||||
continue
|
continue
|
||||||
|
@ -54,7 +54,7 @@ def reload_plugins():
|
||||||
for name, data in bot.plugs.iteritems():
|
for name, data in bot.plugs.iteritems():
|
||||||
bot.plugs[name] = filter(lambda x: x[0][0] != filename, data)
|
bot.plugs[name] = filter(lambda x: x[0][0] != filename, data)
|
||||||
|
|
||||||
for obj in vars(plugin).itervalues():
|
for obj in locals.itervalues():
|
||||||
if hasattr(obj, '_skybot_hook'): #check for magic
|
if hasattr(obj, '_skybot_hook'): #check for magic
|
||||||
for type, data in obj._skybot_hook:
|
for type, data in obj._skybot_hook:
|
||||||
bot.plugs[type] += [data]
|
bot.plugs[type] += [data]
|
||||||
|
@ -70,7 +70,7 @@ for type, plugs in sorted(bot.plugs.iteritems()):
|
||||||
out = ' %s:%s:%s' % (plug[0])
|
out = ' %s:%s:%s' % (plug[0])
|
||||||
print out,
|
print out,
|
||||||
if len(plug) == 3 and 'hook' in plug[2]:
|
if len(plug) == 3 and 'hook' in plug[2]:
|
||||||
print '%s%s' % (' ' * (35 - len(out)), plug[2]['hook'])
|
print '%s%s' % (' ' * (40 - len(out)), plug[2]['hook'])
|
||||||
else:
|
else:
|
||||||
print
|
print
|
||||||
print
|
print
|
||||||
|
|
Loading…
Reference in New Issue