[Commits] python.it commit r253 -
code/pythonisti/trunk/pythonisti/geo
commit a svn.python.it
commit a svn.python.it
Mar 9 Gen 2007 23:04:33 CET
Author: rhymes
Date: Tue Jan 9 23:04:27 2007
New Revision: 253
Modified:
code/pythonisti/trunk/pythonisti/geo/google.py
code/pythonisti/trunk/pythonisti/geo/urls.py
code/pythonisti/trunk/pythonisti/geo/views.py
Log:
parsing the charset directly from the HTTP header
Modified: code/pythonisti/trunk/pythonisti/geo/google.py
==============================================================================
--- code/pythonisti/trunk/pythonisti/geo/google.py (original)
+++ code/pythonisti/trunk/pythonisti/geo/google.py Tue Jan 9 23:04:27 2007
@@ -12,14 +12,20 @@
from django.conf import settings
-
+import re
class AddressNotFound(Exception):
pass
class MultipleAddress(Exception):
pass
-
+
+def _get_charset(header):
+ charset_pattern = re.compile(r"charset=(.*)")
+ matches = charset_pattern.search(header)
+ if matches:
+ return matches.groups(0)[0].split(";")[0] # take the first charset only
+ return None
def get_page(url):
"""Retrieve the content of the HTTP url, as an Unicode string.
@@ -29,10 +35,9 @@
fp = urlopen(url)
- content_type = fp.info()['content-type']
- # TODO parse the charset
- charset = 'utf-8'
- print content_type
+ info = fp.info()
+ content_type = info['content-type']
+ charset = _get_charset(content_type) or "utf-8"
return fp.read().decode(charset)
Modified: code/pythonisti/trunk/pythonisti/geo/urls.py
==============================================================================
--- code/pythonisti/trunk/pythonisti/geo/urls.py (original)
+++ code/pythonisti/trunk/pythonisti/geo/urls.py Tue Jan 9 23:04:27 2007
@@ -4,6 +4,6 @@
urlpatterns = patterns('',
- (r'^db/', views.db_view),
- (r'^map/', views.map_view)
+ (r'^json/', views.json),
+ (r'^map/', views.map)
)
Modified: code/pythonisti/trunk/pythonisti/geo/views.py
==============================================================================
--- code/pythonisti/trunk/pythonisti/geo/views.py (original)
+++ code/pythonisti/trunk/pythonisti/geo/views.py Tue Jan 9 23:04:27 2007
@@ -1,37 +1,30 @@
-# Create your views here.
from django.template import Context, loader
from django.http import HttpResponse
from django.shortcuts import render_to_response
-from django.utils.simplejson import dumps, loads
+from django.utils import simplejson
from django.conf import settings
from pythonisti.geo import models
-
-
-def db_view(request):
+def json(request):
locations = models.GeoLocation.objects.all()
- content = []
+ content = []
for item in locations:
content.append({
'info': item.username.username,
- 'location': loads(item.geolocation)
- })
-
- t = loader.get_template('geo/db.js')
- c = Context({
- 'locations': dumps(content)
+ 'location': simplejson.loads(item.geolocation)
})
- return HttpResponse(t.render(c), mimetype='text/javascript')
+ json_locations = simplejson.dumps(content)
+ return HttpResponse(json_locations, mimetype='application/json')
-def map_view(request):
+def map(request):
context = {
'key': settings.GOOGLE_API_KEY,
'center': settings.MAP_CENTER,
'zoom': settings.MAP_ZOOM
- }
+ }
return render_to_response('geo/map.xhtml', context)
Maggiori informazioni sulla lista
Commits