Continue AI features and improve protocol support
This commit is contained in:
@@ -2,11 +2,11 @@ from asgiref.sync import async_to_sync
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.db import transaction
|
||||
from django.http import HttpResponse
|
||||
from django.utils import timezone as dj_timezone
|
||||
from mixins.views import ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate
|
||||
from rest_framework import status
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from core.clients import signalapi
|
||||
from core.forms import QueueForm
|
||||
from core.models import Message, QueuedMessage
|
||||
from core.util import logs
|
||||
@@ -28,22 +28,18 @@ class AcceptMessageAPI(LoginRequiredMixin, APIView):
|
||||
except QueuedMessage.DoesNotExist:
|
||||
return HttpResponse(status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
if queued.session.identifier.service != "signal":
|
||||
log.warning(
|
||||
"Queue accept failed: unsupported service '%s' for queued message %s",
|
||||
queued.session.identifier.service,
|
||||
queued.id,
|
||||
)
|
||||
return HttpResponse(status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
ts = async_to_sync(signalapi.send_message_raw)(
|
||||
queued.session.identifier.identifier,
|
||||
ts = async_to_sync(queued.session.identifier.send)(
|
||||
queued.text or "",
|
||||
[],
|
||||
)
|
||||
if not ts:
|
||||
log.error("Queue accept send failed for queued message %s", queued.id)
|
||||
return HttpResponse(status=status.HTTP_502_BAD_GATEWAY)
|
||||
sent_ts = (
|
||||
int(ts)
|
||||
if (ts is not None and not isinstance(ts, bool))
|
||||
else int(dj_timezone.now().timestamp() * 1000)
|
||||
)
|
||||
|
||||
with transaction.atomic():
|
||||
Message.objects.create(
|
||||
@@ -51,7 +47,9 @@ class AcceptMessageAPI(LoginRequiredMixin, APIView):
|
||||
session=queued.session,
|
||||
custom_author=queued.custom_author or "BOT",
|
||||
text=queued.text,
|
||||
ts=ts,
|
||||
ts=sent_ts,
|
||||
delivered_ts=sent_ts,
|
||||
read_source_service=queued.session.identifier.service,
|
||||
)
|
||||
queued.delete()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user