Changeset 688

Show
Ignore:
Timestamp:
06/16/08 15:35:22 (6 months ago)
Author:
sylvain
Message:

Purging nodes now ensure the associated collection is purged from its members too

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • oss/headstock/headstock/example/microblog/microblog/jabber/atomhandler.py

    r678 r688  
    1414                "signal"  : "Shutdown signal"} 
    1515 
    16     def __init__(self): 
     16    def __init__(self, use_etags=True): 
    1717        super(FeedReaderComponent, self).__init__() 
    1818        self.last = None 
     19        self.use_etags = use_etags 
    1920 
    2021    def main(self): 
     
    3031            if self.dataReady("inbox"): 
    3132                url = self.recv("inbox") 
    32                 if self.last
     33                if self.use_etags and self.last and self.last.etag
    3334                    d = feedparser.parse(url, etag=self.last.etag) 
    3435                else: 
     
    3738                if d: 
    3839                    self.last = d 
    39                     if d.bozo == 0 and d.status != 304: 
     40                    if d.bozo == 0 and getattr(d, 'status', 200) != 304: 
    4041                        self.send(d, "outbox") 
    4142 
  • oss/headstock/headstock/example/microblog/microblog/jabber/client.py

    r678 r688  
    506506    @staticmethod 
    507507    def connect_jabber_user(atompub, username, password, profile): 
    508         c = Client(atompub, unicode(username), unicode(password),  
    509                    domain=Client.Domain, server=Client.Host, port=Client.Port, 
    510                    usetls=True, register=False, profile=profile) 
    511         Client.Sessions[c.username] = c 
    512         c.activate() 
     508        #c = Client(atompub, unicode(username), unicode(password),  
     509        #           domain=Client.Domain, server=Client.Host, port=Client.Port, 
     510        #           usetls=True, register=False, profile=profile) 
     511        #Client.Sessions[c.username] = c 
     512        #c.activate() 
    513513         
    514514        username = unicode('%s.microblogging' % username) 
  • oss/headstock/headstock/example/microblog/microblog/jabber/pubsub.py

    r683 r688  
    2323 
    2424from microblog.atompub.resource import ResourceWrapper 
     25from microblog.jabber.atomhandler import FeedReaderComponent 
    2526 
    2627__all__ = ['DiscoHandler', 'ItemsHandler', 'MessageHandler'] 
     
    234235               "control"    : "",  
    235236               "xmpp.result": "", 
    236                "jid"        : "",} 
     237               "jid"        : "", 
     238               "_feedresponse": "", 
     239               "_delresponse": ""} 
    237240     
    238241    Outboxes = {"outbox"  : "", 
     
    240243                "delete"  : "", 
    241244                "purge"   : "", 
    242                 "signal"  : "Shutdown signal",} 
     245                "signal"  : "Shutdown signal", 
     246                "_feedrequest": "", 
     247                "_delrequest": ""} 
    243248 
    244249    def __init__(self, from_jid, atompub, host='localhost', session_id=None, profile=None): 
     
    259264        self.addChildren(sub) 
    260265        sub.activate() 
     266 
     267        feedreader = FeedReaderComponent(use_etags=False) 
     268        self.addChildren(feedreader) 
     269        feedreader.activate() 
     270         
     271        client = SimpleHTTPClient() 
     272        self.addChildren(client) 
     273        self.link((self, '_feedrequest'), (client, 'inbox'))  
     274        self.link((client, 'outbox'), (feedreader, 'inbox')) 
     275        self.link((feedreader, 'outbox'), (self, '_feedresponse')) 
     276        client.activate() 
     277 
     278        client = SimpleHTTPClient() 
     279        self.addChildren(client) 
     280        self.link((self, '_delrequest'), (client, 'inbox'))  
     281        self.link((client, 'outbox'), (self, '_delresponse')) 
     282        client.activate() 
    261283 
    262284        return 1 
     
    294316                if m: 
    295317                    node, message = m.groups() 
    296                 print node, message 
    297318                uuid, entry = self.make_entry(message) 
    298319                i = Item(id=uuid, payload=entry) 
     
    315336                         node_name=self.pubsub_top_level_node) 
    316337                self.send(p, "purge") 
    317                 yield 1 
     338 
     339                params = {'url': '%s/feed' % (self.collection.get_base_edit_uri().rstrip('/')),  
     340                          'method': 'GET'} 
     341                self.send(params, '_feedrequest')  
     342 
     343            if self.dataReady("_feedresponse"): 
     344                feed = self.recv("_feedresponse") 
     345                for entry in feed.entries: 
     346                    for link in entry.links: 
     347                        if link.rel == 'edit': 
     348                            params = {'url': link.href, 'method': 'DELETE'} 
     349                            self.send(params, '_delrequest')  
     350 
     351            if self.dataReady("_delresponse"): 
     352                self.recv("_delresponse") 
    318353 
    319354            if not self.anyReady(): 
     
    348383        sub.activate() 
    349384 
    350         self.client = SimpleHTTPClient() 
    351         self.addChildren(self.client) 
    352         self.link((self, '_request'), (self.client, 'inbox'))  
    353         self.link((self.client, 'outbox'), (self, '_response'))  
    354         self.client.activate() 
     385        client = SimpleHTTPClient() 
     386        self.addChildren(client) 
     387        self.link((self, '_request'), (client, 'inbox'))  
     388        self.link((client, 'outbox'), (self, '_response'))  
     389        client.activate() 
    355390 
    356391        return 1