Example #1
0
 def list(self, request, *args, **kwargs):
     return Response({
         'total':
         cache.octoprinttunnel_get_stats(self.request.user.id),
         'monthly_cap':
         settings.OCTOPRINT_TUNNEL_CAP,
     })
Example #2
0
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
Example #3
0
 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
Example #4
0
 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(),
         })