Ticket #3103: pubsub-diff-gajim.diff

File pubsub-diff-gajim.diff, 4.6 KB (added by Olli, 3 years ago)

Diff against svn for pubsub functionality with normal pubsub services

  • src/disco.py

     
    7575                ('_jid', 'weather'):                    (False, 'weather.png'), 
    7676                ('gateway', 'sip'):                     (False, 'sip.png'), 
    7777                ('directory', 'user'):          (None, 'jud.png'), 
    78                 ('pubsub', 'generic'):          (None, 'pubsub.png'), 
     78                ('pubsub', 'generic'):          (PubSubBrowser, 'pubsub.png'), 
    7979                ('pubsub', 'service'):          (PubSubBrowser, 'pubsub.png'), 
    8080                ('proxy', 'bytestreams'):       (None, 'bytestreams.png'), # Socks5 FT proxy 
    8181 
     
    17231723                ''' Create treemodel for the window. ''' 
    17241724                # JID, node, name (with description) - pango markup, dont have info?, subscribed? 
    17251725                self.model = gtk.ListStore(str, str, str, bool, bool) 
    1726                 self.model.set_sort_column_id(3, gtk.SORT_ASCENDING) 
     1726                # sort by node  
     1727                self.model.set_sort_column_id(2, gtk.SORT_ASCENDING) 
    17271728                self.window.services_treeview.set_model(self.model) 
    17281729 
    1729                 # Name column 
    1730                 # Pango markup for name and description, description printed with 
    1731                 # <small/> font 
     1730                # Node Column 
    17321731                renderer = gtk.CellRendererText() 
    1733                 col = gtk.TreeViewColumn(_('Name')) 
     1732                col = gtk.TreeViewColumn(_('Node')) 
    17341733                col.pack_start(renderer) 
    1735                 col.set_attributes(renderer, markup=2) 
     1734                col.set_attributes(renderer, markup=1) 
    17361735                col.set_resizable(True) 
    17371736                self.window.services_treeview.insert_column(col, -1) 
    1738  
     1737         
     1738                 
     1739                 
    17391740                # Subscription state 
    17401741                renderer = gtk.CellRendererToggle() 
    17411742                col = gtk.TreeViewColumn(_('Subscribed')) 
     
    17431744                col.set_attributes(renderer, inconsistent=3, active=4) 
    17441745                col.set_resizable(False) 
    17451746                self.window.services_treeview.insert_column(col, -1) 
    1746  
     1747                 
     1748                # Name column 
     1749                # Pango markup for name and description, description printed with 
     1750                # <small/> font 
     1751                renderer = gtk.CellRendererText() 
     1752                col = gtk.TreeViewColumn(_('Name')) 
     1753                col.pack_start(renderer) 
     1754                col.set_attributes(renderer, markup=2) 
     1755                col.set_resizable(True) 
     1756                self.window.services_treeview.insert_column(col, -1) 
    17471757                self.window.services_treeview.set_headers_visible(True) 
    17481758 
    17491759        def _add_item(self, jid, node, item, force): 
     
    17601770 
    17611771                name = gobject.markup_escape_text(name) 
    17621772                name = '<b>%s</b>' % name 
    1763  
     1773                 
    17641774                self.model.append((jid, node, name, dunno, subscribed)) 
    17651775 
    17661776        def _add_actions(self): 
  • src/common/connection_handlers.py

     
    15161516                if items is None: return 
    15171517 
    15181518                for item in items.getTags('item'): 
    1519                         # check for event type (for now only one type supported: pubsub.com events) 
    1520                         child = item.getTag('pubsub-message') 
    1521                         if child is not None: 
    1522                                 # we have pubsub.com notification 
    1523                                 child = child.getTag('feed') 
    1524                                 if child is None: continue 
    1525  
    1526                                 for entry in child.getTags('entry'): 
    1527                                         # for each entry in feed (there shouldn't be more than one, 
    1528                                         # but to be sure... 
    1529                                         self.dispatch('ATOM_ENTRY', (atom.OldEntry(node=entry),)) 
     1519                        entry = item.getTag('entry') 
     1520                        if entry is not None: 
     1521                                # for each entry in feed (there shouldn't be more than one, 
     1522                                # but to be sure... 
     1523                                self.dispatch('ATOM_ENTRY', (atom.OldEntry(node=entry),)) 
    15301524                                continue 
    15311525                        # unknown type... probably user has another client who understands that event 
    1532                  
    15331526                raise common.xmpp.NodeProcessed 
    15341527 
    15351528        def _presenceCB(self, con, prs): 
  • src/common/atom.py

     
    6363                else: 
    6464                        main_feed = None 
    6565 
    66                 if self.getTag('source-feed') is not None: 
    67                         source_feed = self.getTag('source-feed').getTagData('title') 
     66                if self.getTag('feed') is not None: 
     67                        source_feed = self.getTag('feed').getTagData('title') 
    6868                else: 
    6969                        source_feed = None 
     70                 
    7071 
    7172                if main_feed is not None and source_feed is not None: 
    7273                        return u'%s: %s' % (main_feed, source_feed) 
     
    7879                        return u'' 
    7980 
    8081        feed_title = property(get_feed_title, None, None,  
    81                 ''' Title of feed. It is built from entry's original feed title and title of feed 
     82                ''' Title of feed. It is built from entry''s original feed title and title of feed 
    8283                which delivered this entry. ''') 
    8384 
    8485        def get_feed_link(self): 
    85                 ''' Get a link to main page of feed (in pubsub.com: second link of rel='alternate', 
    86                 first contains raw xml data). ''' 
     86                ''' Get source link ''' 
    8787                try: 
    88                         return self.getTag('source-feed').getTags('link', {'rel':'alternate'})[1].getData() 
     88                        return self.getTag('feed').getTags('link',{'rel':'alternate'})[1].getData() 
    8989                except: 
    9090                        return None 
    9191