def plugin_data(name, morph=''): result = {'columns':[],'data':[]} con = sqlite3.connect(config.OUTPUT_FILE) if request.method == 'POST' and request.forms.get('query'): query = request.forms.get('query') else: query = 'SELECT * FROM ' + name curs = con.cursor() try: curs.execute(query) result['data'] = curs.fetchall() result['columns'] = [i[0] for i in curs.description] except Exception as err: result['error'] = err.message result['name'] = name result['query'] = query result['morphs'] = [] for m in Plugins['morphs']: if name in m['plugins']: result['morphs'].append(m['name']) if morph: for sub in BaseMorph.__subclasses__(): if sub.name == morph: cls = sub() cls.morph(result) return json.dumps(result)
def BuildMorphList(): morphpath = os.path.join(os.path.dirname(__file__), 'morphs') for morphfile in os.listdir(morphpath): if morphfile.endswith('py') and morphfile.lower() not in ['basemorph.py','__init__.py']: print "found morph: " + morphfile __import__('morphs.' + morphfile.replace('.py','')) Plugins['morphs'] = [] for sub in BaseMorph.__subclasses__(): #sub.__init__(sub) Plugins['morphs'].append({'name':sub.name, 'display':sub.displayname,'plugins':sub.plugins, 'helptext':sub.helptext})
def morph_set_config(name): try: for sub in BaseMorph.__subclasses__(): if sub.name.lower() == name.lower(): cls = sub() #cls.SetConfig(request.forms.dict) cls.SetConfig(request.json) break return json.dumps({'result':'success'}) except Exception as err: print err.message + ': ' + str(err.args) return json.dumps({'result':'error','msg':err.message + ': ' + str(err.args)})
def morph_config(name): for sub in BaseMorph.__subclasses__(): if sub.name.lower() == name.lower(): cls = sub() data = { 'name':cls.name, 'display':cls.displayname, 'helptext':cls.helptext, 'plugins':cls.plugins, 'config':cls.config } return json.dumps(data)
def BuildPluginList(): Plugins['plugins'] = [] for cmdname in sorted(cmds): command = cmds[cmdname] if command.is_valid_profile(profile): Plugins['plugins'].append({'name':cmdname,'help':command.help(), 'data':0, 'error':''}) morphpath = os.path.join(os.path.dirname(__file__), 'morphs') for morphfile in os.listdir(morphpath): if morphfile.endswith('py') and morphfile.lower() not in ['basemorph.py','__init__.py']: print "found morph: " + morphfile __import__('morphs.' + morphfile.replace('.py','')) Plugins['morphs'] = [] for sub in BaseMorph.__subclasses__(): #sub.__init__(sub) Plugins['morphs'].append({'name':sub.name, 'display':sub.displayname,'plugins':sub.plugins, 'helptext':sub.helptext})
def __init__(self): BaseMorph.__init__(self)