mirror of
https://github.com/jointakahe/takahe.git
synced 2024-12-27 15:40:29 +00:00
25 lines
808 B
Python
25 lines
808 B
Python
|
from django.conf import settings
|
||
|
from django.http import HttpResponse, HttpResponseForbidden
|
||
|
from django.views import View
|
||
|
|
||
|
from stator.models import StatorModel
|
||
|
from stator.runner import StatorRunner
|
||
|
|
||
|
|
||
|
class RequestRunner(View):
|
||
|
"""
|
||
|
Runs a Stator runner within a HTTP request.
|
||
|
For when you're on something serverless.
|
||
|
"""
|
||
|
|
||
|
async def get(self, request):
|
||
|
# Check the token, if supplied
|
||
|
if not settings.STATOR_TOKEN:
|
||
|
return HttpResponseForbidden("No token set")
|
||
|
if request.GET.get("token") != settings.STATOR_TOKEN:
|
||
|
return HttpResponseForbidden("Invalid token")
|
||
|
# Run on all models
|
||
|
runner = StatorRunner(StatorModel.subclasses, run_for=2)
|
||
|
handled = await runner.run()
|
||
|
return HttpResponse(f"Handled {handled}")
|