comparison idavoll/pgsql_storage.py @ 202:77c61e2b8c75

Use `domish.Element`s to represent items, instead of serialized XML.
author Ralph Meijer <ralphm@ik.nu>
date Wed, 25 Jun 2008 12:27:55 +0000
parents e404775b12df
children b4bf0a5ce50d
comparison
equal deleted inserted replaced
201:d829db6095d6 202:77c61e2b8c75
1 # Copyright (c) 2003-2008 Ralph Meijer 1 # Copyright (c) 2003-2008 Ralph Meijer
2 # See LICENSE for details. 2 # See LICENSE for details.
3 3
4 import copy 4 import copy
5
6 from zope.interface import implements
7
5 from twisted.enterprise import adbapi 8 from twisted.enterprise import adbapi
6 from twisted.words.protocols.jabber import jid 9 from twisted.words.protocols.jabber import jid
7 from zope.interface import implements 10
11 from wokkel.generic import parseXml
8 12
9 from idavoll import error, iidavoll 13 from idavoll import error, iidavoll
10 14
11 class Storage: 15 class Storage:
12 16
416 maxItems)) 420 maxItems))
417 else: 421 else:
418 cursor.execute(query, (self.nodeIdentifier)) 422 cursor.execute(query, (self.nodeIdentifier))
419 423
420 result = cursor.fetchall() 424 result = cursor.fetchall()
421 return [unicode(r[0], 'utf-8') for r in result] 425 return [parseXml(r[0]) for r in result]
422 426
423 427
424 def getItemsById(self, itemIdentifiers): 428 def getItemsById(self, itemIdentifiers):
425 return self._dbpool.runInteraction(self._getItemsById, itemIdentifiers) 429 return self._dbpool.runInteraction(self._getItemsById, itemIdentifiers)
426 430
434 WHERE node=%s AND item=%s""", 438 WHERE node=%s AND item=%s""",
435 (self.nodeIdentifier, 439 (self.nodeIdentifier,
436 itemIdentifier)) 440 itemIdentifier))
437 result = cursor.fetchone() 441 result = cursor.fetchone()
438 if result: 442 if result:
439 items.append(unicode(result[0], 'utf-8')) 443 items.append(parseXml(result[0]))
440 return items 444 return items
441 445
442 446
443 def purge(self): 447 def purge(self):
444 return self._dbpool.runInteraction(self._purge) 448 return self._dbpool.runInteraction(self._purge)