Exemplo n.º 1
0
    def _setup(self):

        self.type = 'file'
        self.players = None
        if not self.item.has_key('filename') or \
             not self.item.has_key('length'):
             #or not self.item.has_key('name'):
            raise error.Error(_('Bad datum'))

        #if self.item.get('music_title'):
        #    self.title = self.item['music_title']
        #    if self.item.get('music_artist'):
        #        self.title = self.title + _(' by ') + self.item['music_artist']
        #else:
        #    self.title = self.item['filename']

        self.title = utility.force_unicode(self.item['filename'])
        self.title = utility.force_unicode(self.title)         
        keys = [('filename',''),('music_title',_('   Title: ')),('music_album',_('   Album: ')),('music_artist',_('   Artist: '))]
        self.description = ''
        for key in keys:
            if self.item.has_key(key[0]):
                self.description = self.description+key[1]+\
                    utility.force_unicode(self.item[key[0]])+'\n'
        self.description_template = self.description
Exemplo n.º 2
0
    def _setup(self):
        if self.item['type'] == 'identity':
            self.address = self.sources[0]

        self.name = utility.force_unicode(self.item['name']) + \
                    ' (' + utility.force_unicode(self.item.get('human-name','')) + ')'

        self.update_description()
Exemplo n.º 3
0
 def update_description(self):
     self.title = self.name
     self.description = _('Name: ') + \
                        utility.force_unicode(self.item.get('human-name','')) + \
                        '\n  '+_('Username: '******'name'])
                                          
     if self.address:
         self.title = self.title + _(' (online)')
         self.description = self.description + \
             '\n  '+_('Location: ')+ self.address[0]+':'+repr(self.address[1]) 
Exemplo n.º 4
0
    def _setup(self):

        self.title = utility.force_unicode(self.item['title'])
        self.type = 'auction'
Exemplo n.º 5
0
 def _setup(self):
     self.title = utility.force_unicode( self.item['name'] )
     self.description = _("1 subscriber on-line.")
     self.type = 'channel exists'
Exemplo n.º 6
0
    def update(self, app):
        any = 0

        if not self.pipe:
            self.pipe = self.pipe_getter()
            any = 1

        if self.pipe.finished() and self.still_searching:
            self.still_searching = 0
            return 1

        list = self.pipe.read_all()

        prev_pair = None
        for pair in list:
            if pair == prev_pair:
                continue
            link, item = prev_pair = pair

            # this is bad, really
            try:
                item = utility.check_and_demangle_item(item)
            except:
                self.empty_text = item
                continue

            keywords = item.get('keywords',[ ])

            if type(keywords) != types.ListType:
                continue

            # Comparing a string to a unicode can throw an error,
            # so force everything to unicode
            for i in range(len(keywords)):
                keywords[i] = utility.force_unicode(keywords[i])

            bad = 0                
            for key in self.keywords:
                if key not in keywords:
                    bad = 1
            for key in self.anti_keywords:
                if key in keywords:
                    bad = 1
            if item.get('type')=='file':
                if self.mime:
                    mime = item.get('mime')
                    if not mime:
                        bad=1
                    else:
                        if mime.find(self.mime) == -1:
                            bad = 1

            if item.get('type') != 'identity' and self.online_only:
                bad = 1                
                            
            if item.get('type') == 'file' and self.remote_only :
                if app.node.data.has_key(item.get('name')+app.node.salt):
                    bad=1
            
            if bad:
                continue

            any = 1
            if item.get('type') == 'directory':
                any=1
                def pipe_getter(path=item['path'],app=app,link=link):
                    pipe = app.node.search_browse_task(link,path)
                    return pipe
                
                new_interior = Search_tree_directory(
                    pipe_getter,self.keywords,self.anti_keywords,\
                    self.what,self.mime,item['filename'],\
                    self.empty_text,self.single_text,0)
                new_interior.item=item
                
                if self.nickname:
                    new_interior.nickname=self.nickname
                    d=self.nickname+':'
                    if item['path']:
                        d=d+utility.force_unicode(string.join(item['path'],'/'))+'/'
                    visited_directories.append(d)

                self.children.append( new_interior )
            else:
                for child in self.children:
                    if child.matches(item,link):
                        child.add_source(item,link)
                        break
                else:
                    try:
                        if search_item_table.has_key(item['type']):
                            self.children.append( search_item_table[item['type']](item,link,self) )
                    except:                     
                        pass
                    
        return any