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
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()
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])
def _setup(self): self.title = utility.force_unicode(self.item['title']) self.type = 'auction'
def _setup(self): self.title = utility.force_unicode( self.item['name'] ) self.description = _("1 subscriber on-line.") self.type = 'channel exists'
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