Exemple #1
0
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}
Exemple #2
0
	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)
Exemple #3
0
def _makeKeywords(path):
	keywords = set()
	for part in path:
		for keyword in khelper.toKeywords(part):
			keywords.add(keyword)
	return keywords