def InstallInWebKit(appServer):
app = appServer.application()
from WebKit.PlugIn import PlugInError
try:
try:
from KidKit.Properties import requiredSoftware
except ImportError:
raise PlugInError('Cannot determine required software.')
for soft in requiredSoftware:
if soft['name'] == 'kid':
requiredKidVersion = soft['version']
break
else:
raise PlugInError('Cannot determine required Kid version.')
try:
import kid
except ImportError:
raise PlugInError(
'Cannot import Kid. This needs to be installed to use KidKit.')
try:
kidVersion = tuple(map(lambda s:
int('0' + ''.join(filter(lambda c: c.isdigit(), s))),
kid.__version__.split('.', 3)[:3]))
except ImportError:
raise PlugInError('Cannot determine Kid version.')
if kidVersion < requiredKidVersion:
raise PlugInError(
'KidKit needs at least Kid version %s (installed is %s).'
% ('.'.join(map(str, requiredKidVersion)),
'.'.join(map(str, kidVersion))))
try:
from KidServletFactory import KidServletFactory
app.addServletFactory(KidServletFactory(app))
except Exception:
from traceback import print_exc
print_exc()
raise PlugInError('Cannot install Kid servlet factory.')
except PlugInError, e:
print e
print "KidKit will not be loaded, '.kid' extension will be ignored."
e = app.setting('ExtensionsToIgnore', [])
if '.kid' not in e:
e.append('.kid')
app.setSetting('ExtensionsToIgnore', e)
e = app.setting('FilesToHide', [])
if '*.kid' not in e:
e.append('*.kid')
app.setSetting('FilesToHide', e)
from WebKit.URLParser import initParser
initParser(app)