def process_request(self, request): params = dict( is_view_public=True, is_view_enabled=True, ) private_tags = [i.id for i in CameraTag.objects(is_private=True)] params.update(dict(tags__not__in=private_tags)) request.places = paginate(request, Camera.objects(**params).order_by('-view_count'), Camera.objects(**params).count(), 10, reverse('cam:place_update', args=['time', 'asc'])) request.places_all_count = Camera.objects.count()
def process_request(self, request): params = dict( is_view_public=True, is_view_enabled=True, ) private_tags = [i.id for i in CameraTag.objects(is_private=True)] params.update(dict(tags__not__in=private_tags)) request.places = paginate( request, Camera.objects(**params).order_by('-view_count'), Camera.objects(**params).count(), 10, reverse('cam:place_update', args=['time', 'asc'])) request.places_all_count = Camera.objects.count()
def cam_view_notify(request, format): """ API: ?session_key=<Fx24>&camera_id=<Fx24>&status=connect ?session_key=<Fx24>&camera_id=<Fx24>&status=next&time=<sec> ?session_key=<Fx24>&camera_id=<Fx24>&status=disconnect&time=<sec> 0 OK -1 BAD PARAMS -500 INTERNAL ERROR """ from apps.media.documents import File request_id = time() def log_debug(text): info = '\n'.join([ "session_key=%s" % session_key, "user_id=%s" % user.id if user else None, "camera_id=%s" % camera_id, ]) logger.debug('cam_view_notify %s\n%s\n%s' % (request_id, info, text)) logger.debug('cam_view_notify %s\nrequest %s' % (request_id, repr(request.GET.items()))) user = None session_key = None camera_id = None try: if not request.GET: raise CameraAccessor.APIException("Bad params") status = request.GET.get('status', None) session_key = request.GET.get('session_key', None) camera_id = request.GET.get('camera_id', None) if not (status and session_key and camera_id): raise CameraAccessor.APIException("Bad params") extra_time = request.GET.get('time', None) if extra_time is not None: if not extra_time.isdigit(): raise CameraAccessor.APIException("Time must by a digit") extra_time = int(extra_time) if extra_time > settings.TIME_INTERVAL_NOTIFY or extra_time < 0: raise CameraAccessor.APIException("Bad time interval") # extract data from session engine = import_module(settings.SESSION_ENGINE) session = engine.SessionStore(session_key) user_id = session.get(SESSION_KEY, None) if not user_id: raise CameraAccessor.APIException("Need user_id") user = User.objects(id=user_id).first() if not user: raise CameraAccessor.APIException("Bad user_id") camera = Camera.objects(id=camera_id).first() if not camera: raise CameraAccessor.APIException( "Can`t found camera by camera_id") result = CameraAccessor(status, user, camera, session, extra_time) except CameraAccessor.APIException, e: params = (-1, 0, 0) log_debug('api error\n%s\n%s' % (e, traceback.format_exc()))
def get_camera(self): from apps.cam.documents import Camera return Camera.objects(owner=self).first()
def cam_view_notify(request, format): """ API: ?session_key=<Fx24>&camera_id=<Fx24>&status=connect ?session_key=<Fx24>&camera_id=<Fx24>&status=next&time=<sec> ?session_key=<Fx24>&camera_id=<Fx24>&status=disconnect&time=<sec> 0 OK -1 BAD PARAMS -500 INTERNAL ERROR """ from apps.media.documents import File request_id = time() def log_debug(text): info = '\n'.join([ "session_key=%s" % session_key, "user_id=%s" % (user.id if user else None), "camera_id=%s" % camera_id, ]) logger.debug('cam_view_notify %s\n%s\n%s' % (request_id, info, text)) logger.debug('cam_view_notify %s\nrequest %s' % (request_id, repr(request.GET.items()))) user = None session_key = None camera_id = None try: if not request.GET: raise CameraAccessor.APIException("Bad params") status = request.GET.get('status', None) session_key = request.GET.get('session_key', None) camera_id = request.GET.get('camera_id', None) if not (status and session_key and camera_id): raise CameraAccessor.APIException("Bad params") extra_time = request.GET.get('time', None) if extra_time is not None: if not extra_time.isdigit(): raise CameraAccessor.APIException("Time must by a digit") extra_time = int(extra_time) if extra_time > settings.TIME_INTERVAL_NOTIFY or extra_time < 0: raise CameraAccessor.APIException("Bad time interval") # extract data from session engine = import_module(settings.SESSION_ENGINE) session = engine.SessionStore(session_key) user_id = session.get(SESSION_KEY, None) if not user_id: raise CameraAccessor.APIException("Need user_id") user = User.objects(id=user_id).first() if not user: raise CameraAccessor.APIException("Bad user_id") camera = Camera.objects(id=camera_id).first() if not camera: raise CameraAccessor.APIException("Can`t found camera by camera_id") result = CameraAccessor(status, user, camera, session, extra_time) except CameraAccessor.APIException, e: params = (-1, 0, 0) log_debug('api error\n%s\n%s' % (e, traceback.format_exc()))
def get_camera(self): from apps.cam.documents import Camera return Camera.objects(owner=self).first()
def handle(self, *args, **options): for tag in CameraTag.objects: tag.count = Camera.objects(tags=tag).count() tag.save()