Added release 0.8.7 details in ChangeLog file
[flowspy] / poller / views.py
index 3088fc0..0e756e9 100644 (file)
@@ -4,7 +4,6 @@ from gevent.pool import Pool
 import json
 
 import uuid
-import simplejson
 import datetime
 from django.shortcuts import render_to_response
 from django.template.loader import render_to_string
@@ -16,7 +15,7 @@ from django.http import HttpResponseRedirect
 from django.core.urlresolvers import reverse
 
 
-from flowspy.utils import beanstalkc
+import beanstalkc
 
 import logging
 
@@ -34,12 +33,13 @@ def create_message(body, user):
 
 def json_response(value, **kwargs):
     kwargs.setdefault('content_type', 'text/javascript; charset=UTF-8')
-    return HttpResponse(simplejson.dumps(value), **kwargs)
+    return HttpResponse(json.dumps(value), **kwargs)
 
 class Msgs(object):
     cache_size = 500
 
     def __init__(self):
+        logger.info("initializing")
         self.user = None
         self.user_cache = {}
         self.user_cursor = {}
@@ -63,7 +63,6 @@ class Msgs(object):
                 assert(self.new_message_user_event[user])
             except:
                 self.new_message_user_event[user] = Event()
-    #        self.new_message_user_event[user] = Event()
             try:
                 if self.user_cache[user]:
                     self.user_cursor[user] = self.user_cache[user][-1]['id']
@@ -88,7 +87,6 @@ class Msgs(object):
             self.user_cursor[user] = self.user_cache[user][-1]['id']
         else:
             self.user_cursor[user] = self.user_cache[user][-2]['id']
-#        self.cache.append(msg)
         if len(self.user_cache[user]) > self.cache_size:
             self.user_cache[user] = self.user_cache[user][-self.cache_size:]
         self.new_message_user_event[user].set()
@@ -99,12 +97,14 @@ class Msgs(object):
         if request.is_ajax():
             cursor = {}
             try:
-    #            user = request.user.username
                 user = request.user.get_profile().peer.domain_name
             except:
                 user = None
                 return False
-            cursor[user] = self.user_cursor[user]
+            try:
+                cursor[user] = self.user_cursor[user]
+            except:
+                return HttpResponse(content='', mimetype=None, status=400)
                 
             try:
                 if not isinstance(self.user_cache[user], list):
@@ -112,9 +112,7 @@ class Msgs(object):
             except:
                 self.user_cache[user] = []
             if not self.user_cache[user] or cursor[user] == self.user_cache[user][-1]['id']:
-                self.new_message_user_event[user].wait()
-    #            self.new_message_event.wait()
-    #        assert cursor[user] != self.user_cache[user][-1]['id'], cursor[user]
+                self.new_message_user_event[user].wait(settings.POLL_SESSION_UPDATE)
             try:
                 for index, m in enumerate(self.user_cache[user]):
                     if m['id'] == cursor[user]:
@@ -124,8 +122,6 @@ class Msgs(object):
                 if self.user_cache[user]:
                     self.user_cursor[user] = self.user_cache[user][-1]['id']
         return HttpResponseRedirect(reverse('group-routes'))
-    #            else:
-    #                request.session.pop('cursor', None)
 
     def monitor_polls(self, polls=None):
         b = beanstalkc.Connection()
@@ -144,7 +140,6 @@ class Msgs(object):
             p.spawn(self.monitor_polls)
             
 msgs = Msgs()
-
 main = msgs.main
 
 message_new = msgs.message_new
@@ -154,12 +149,3 @@ message_existing = msgs.message_existing
 poll = msgs.start_polling
 poll()
 
-
-
-
-
-
-
-
-
-