def list(self, request, *args, **kwargs): return Response({ 'total': cache.octoprinttunnel_get_stats(self.request.user.id), 'monthly_cap': settings.OCTOPRINT_TUNNEL_CAP, })
def tunnel_api(request, octoprinttunnel): if request.path.lower() == '/_tsd_/tunnelusage/': start_of_next_month = (datetime.now().replace(day=1) + timedelta(days=32)).replace(day=1) return HttpResponse(json.dumps({ 'total': cache.octoprinttunnel_get_stats(octoprinttunnel.printer.user.id), 'monthly_cap': -1 if octoprinttunnel.printer.user.is_pro else settings.OCTOPRINT_TUNNEL_CAP, 'reset_in_seconds': (start_of_next_month - datetime.now()).total_seconds(), }), content_type='application/json') if request.path.lower() == '/_tsd_/webcam/0/': pic = (cache.printer_pic_get(octoprinttunnel.printer.id) or {}).get('img_url', None) return HttpResponse( json.dumps({'snapshot': pic}), content_type='application/json', ) raise Http404
def tunnel_usage_over_cap(self): return not self.is_pro and cache.octoprinttunnel_get_stats( self.id ) > settings.OCTOPRINT_TUNNEL_CAP * 1.1 # Cap x 1.1 to give some grace period to users
def list(self, request, *args, **kwargs): return Response({'total': cache.octoprinttunnel_get_stats(self.request.user.id)})
def tunnel_usage_over_cap(self): if self.tunnel_cap() < 0: return False else: return cache.octoprinttunnel_get_stats(self.id) > self.tunnel_cap() * 1.1 # Cap x 1.1 to give some grace period to users
def list(self, request, *args, **kwargs): return Response({ 'total': cache.octoprinttunnel_get_stats(self.request.user.id), 'monthly_cap': self.request.user.tunnel_cap(), })