--- nfo/projects/netfraggle/bin/fraggleEngine.py 2004/08/31 16:48:19 1.8 +++ nfo/projects/netfraggle/bin/fraggleEngine.py 2004/09/13 21:07:38 1.10 @@ -5,13 +5,20 @@ # Author: joko # # Created: 2004/30/08 -# RCS-ID: $Id: fraggleEngine.py,v 1.8 2004/08/31 16:48:19 joko Exp $ +# RCS-ID: $Id: fraggleEngine.py,v 1.10 2004/09/13 21:07:38 xabbu Exp $ # Copyright: (c) 2004 netfrag.org # Licence: GPL #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # $Log: fraggleEngine.py,v $ +# Revision 1.10 2004/09/13 21:07:38 xabbu +# + function query added for testing of the nql / rpc interface +# +# Revision 1.9 2004/09/01 21:43:30 xabbu +# +Moved funtion getDefaultDir from FraggleCtlPreferences to FraggleEngine for more convenience +# +FraggleCtlModules class creation for handling content modules +# # Revision 1.8 2004/08/31 16:48:19 joko # + def authenticate # @@ -37,12 +44,15 @@ from fraggleConstants import * import FraggleXMLRPC import fraggleCtlPreferences +import FraggleCtlModules +import fraggleParserXML class FraggleEngine: """Back-end doing the work.""" def __init__(self): self.settings = {} self.topics = {} + self.modules = FraggleCtlModules.create(self) self.preferences = fraggleCtlPreferences.create(self) self.rpc = FraggleXMLRPC.create(self, self.preferences.getConfig()) @@ -64,7 +74,8 @@ return None def fraggleSync(self): - + #self.queryCms() + fraggleParser = fraggleParserXML.create(self) # v1 - demo self.topics = [ { @@ -118,6 +129,8 @@ } }, ] + topicfile = os.path.join(self.getDefaultDir(), 'topic.xml') + fraggleParser.marshalXML(self.topics,topicfile) return # v2 - live @@ -133,7 +146,19 @@ def getTopicById(self, id): return self.topics[id] - + + def listItems(self,topicId): + result = self.queryCms("GET creator_id, language_id, description FROM contents") + print result + + def queryCms(self,nqlquery): + + from xmlrpclib import Server,Error + rpc = Server('http://netfrag.org/nfo/netfraggle.php') + topicdata = rpc.query(nqlquery) + print topicdata + return topicdata + def query_remote(self, topicmeta): if topicmeta['target']['type'] == 'XMLRPC': @@ -170,7 +195,25 @@ except Error, v: print "ERROR", v - + def getDefaultDir(self): + """Gets location of default dir and creates it + if necessary. ($HOME/.pears/)""" + try: + import pearsdebug + savedir = pearsdebug.savedir + except: + dir = '.netfraggle' + savedir = os.path.expanduser(os.path.join('~', dir)) + if len(savedir)<=len("c:\\/" + dir): + # problem that might occur on Win2k (no $HOME environment variable) + temp = os.path.join(os.path.expandvars('$USERPROFILE'), dir) + if temp > len("c:\\/" + dir): + savedir = temp + # create dir if it doesn't exist + if not os.path.exists(savedir): + os.makedirs(savedir) + return savedir + class urlOpener(object): """Opens urls.""" def __init__(self):