def extractInfo(data): files = _getFiles(data) size = 0 file_count = len(files) keywords = None #Keywords from name file_keywords = {} #Keywords from files and paths file_list = [] name = None for path, length in files: if path[-1][-18:] == "_____padding_file_": continue if type(length) != int: raise ParseException, "Some f****t can't into torrent files" size += length file_list.append(['/'.join(path), length]) for keyword in _makeKeywords(path): if keyword in file_keywords: file_keywords[keyword] += 1 else: file_keywords[keyword] = 1 keywords = file_keywords.keys() if 'name' in data: name = data['name'] name_keywords = khelper.toKeywords(name) for keyword in name_keywords: if not keyword in keywords: keywords.append(keyword) else: name = ' '.join(_getHighest(file_keywords,5)) return {'name':name, 'size':size, 'keywords':keywords, 'files':file_list, 'file_count':file_count}
def search(self, q=""): query = q.strip() if query == "": raise HTTPRedirect("/") query = keywords.toKeywords(query) if len(query) == 0: raise HTTPRedirect("/?showmsg=1") results = self.db.findByKeywords(query) return self._makeLocalized("search.html", query = q, results = results)
def _makeKeywords(path): keywords = set() for part in path: for keyword in khelper.toKeywords(part): keywords.add(keyword) return keywords