mysql FTS
[ebuildfind.git] / views.py
blobd10edcfdf29e39f6abac8f0312f3be668023e31a
1 from commands.whoosh_manager import WhooshEbuildManager
2 from django.shortcuts import render_to_response
3 from planet import Parser
5 from models import Ebuild, Index
7 import re, string
9 PUNCTUATION_REGEX = re.compile('[' + re.escape(string.punctuation.replace("-", "").replace("+", "")) + ']')
11 def index(request):
12 GPlanet = Parser("http://planet.gentoo.org/atom.xml")
13 GOverlays = Parser("http://overlays.gentoo.org/rss20.xml")
14 GNews = Parser("http://www.gentoo.org/rdf/en/gentoo-news.rdf")
15 GGoogle = Parser("http://news.google.fr/news?pz=1&ned=us&hl=en&q=gentoo+AND+(linux+OR+OS+OR+Operating+System+OR+GNU)&output=rss")
17 response = dict()
19 response['GGoogle'] = GGoogle
20 response['GNews'] = GNews
21 response['GOverlays'] = GOverlays
22 response['GPlanet'] = GPlanet
24 return render_to_response("ebuildfind/index.html", response)
27 overlay = {}
29 def add_overlay(name, description):
30 overlay["name"] = description
32 def search(request):
33 response = {"error":"Query should be at least 3 caracters long"}
34 query = ""
36 if request.method == 'GET':
37 try:
38 query = request.GET["q"]
39 query = PUNCTUATION_REGEX.sub(' ', query)
40 except:
41 pass
43 if(len(query)>2):
44 response["error"] = False
45 response["query"] = query
46 results = Ebuild.search(Ebuild, query)
47 response["results"] = results
48 response["nb"] = len(results)
50 return render_to_response("ebuildfind/search.html", response)