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
9 PUNCTUATION_REGEX
= re
.compile('[' + re
.escape(string
.punctuation
.replace("-", "").replace("+", "")) + ']')
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 identica
= Parser("https://identi.ca/api/laconica/groups/timeline/gentoo.atom")
19 response
['identica'] = identica
20 response
['GNews'] = GNews
21 response
['GOverlays'] = GOverlays
22 response
['GPlanet'] = GPlanet
24 return render_to_response("ebuildfind/index.html", response
)
29 def add_overlay(name
, description
):
30 overlay
["name"] = description
33 response
= {"error":"Query should be at least 3 caracters long"}
36 if request
.method
== 'GET':
38 query
= request
.GET
["q"]
39 query
= PUNCTUATION_REGEX
.sub(' ', query
)
44 response
["error"] = False
45 response
["query"] = query
46 results
= Ebuild
.search(Ebuild
, query
)
47 response
["results"] = results
48 response
["nb"] = len(results
)
50 elif len(query
) in (2, 3):
51 response
["error"] = False
52 response
["query"] = query
53 results
= Ebuild
.regex(Ebuild
, query
)
54 response
["results"] = results
55 response
["nb"] = len(results
)
57 return render_to_response("ebuildfind/search.html", response
)