@@ -292,7 +292,6 @@ CELERY_BEAT_SCHEDULE = {
'task': 'payments.tasks.send_low_balance_message',
'schedule': crontab(0, 8),
},
- 'dump_messages_errors': {'task': 'messages.tasks.dump_messages_errors', 'schedule': crontab(0)},
}
CACHES = {
@@ -0,0 +1,16 @@
+# Generated by Django 5.0.11 on 2025-10-02 14:42
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('msgs', '0008_alter_messageerror_message'),
+ ]
+
+ operations = [
+ migrations.DeleteModel(
+ name='MessageError',
+ ),
+ ]
@@ -1,3 +1,2 @@
from .message import Message, message_file_upload
-from .message_error import MessageError
from .store import BaseStore, SingleStore, MultipleStore
@@ -1,18 +0,0 @@
-from django.db import models
-from django.utils.translation import gettext_lazy as _
-
-from core.models import BaseModel
-from .message import Message
-
-
-class MessageError(BaseModel):
- message = models.OneToOneField(Message, on_delete=models.DO_NOTHING, verbose_name=_('Message'), related_name='message_error')
- detail = models.TextField(verbose_name=_('Detail'))
- stacktrace = models.TextField(null=True, blank=True, verbose_name='Stack Trace')
-
- class Meta:
- verbose_name = _('Message error')
- verbose_name_plural = _('Message errors')
-
- def __str__(self) -> str:
- return f'{self.detail[:50]}'
@@ -2,9 +2,7 @@ from django.contrib import admin
from django.urls import reverse
from django.utils.html import format_html
-from messages.models import MessageError, Message
-from tools.chats.models import Chat
-from tools.media.models import Gallery
+from messages.models import Message
@admin.register(Message)
@@ -29,27 +27,3 @@ class MessageAdmin(admin.ModelAdmin):
url = reverse(f'admin:{c_obj._meta.app_label}_{c_obj._meta.model_name}_change', args=[c_obj.pk])
return format_html('{}', url, str(c_obj))
return '-'
-
-
-@admin.register(MessageError)
-class MessageErrorAdmin(admin.ModelAdmin):
- list_per_page = 20
- readonly_fields = ('detail', 'stacktrace')
- list_display = ('pk', 'message_link', 'short_detail')
- search_fields = ('detail', 'stacktrace',)
- raw_id_fields = ('message',)
-
- @admin.display(description='Сообщение')
- def message_link(self, obj: MessageError):
- if msg_id := obj.message_id:
- url = reverse('admin:msgs_message_change', args=[msg_id])
- return format_html('{}', url, f'Сообщение {str(msg_id)[:8]}...')
- return '-'
-
- @admin.display(description='Подробности')
- def short_detail(self, obj: MessageError):
- return obj.detail[:50]
-
- def get_queryset(self, request):
- queryset = super().get_queryset(request)
- return queryset.select_related('message')
@@ -1,15 +0,0 @@
-import json
-
-from django.core.cache import cache
-
-from celery import shared_task
-
-from .models import MessageError
-
-
-@shared_task
-def dump_messages_errors():
- pipe = cache.client.get_client().pipeline()
- pipe.lrange('message_errors', 0, -1)
- pipe.ltrim('message_errors', 1, 0)
- MessageError.objects.bulk_create([MessageError(**json.loads(data)) for data in pipe.execute()[0]])
@@ -1,10 +1,6 @@
-import json
-
from django.urls import path
-from django.core.cache import cache
from .apis import MessageAPIView, MessagesAPIView
-from .models import Message
def make_messages_urls(appname: str):
@@ -20,11 +16,3 @@ def make_messages_urls(appname: str):
name='message',
),
]
-
-def push_message_error(message: Message, err: str, stacktrace: str) -> None:
- err_data = {
- 'message_id': str(message.uid),
- 'detail': err,
- 'stacktrace': stacktrace
- }
- cache.client.get_client().rpush('message_errors', json.dumps(err_data))
@@ -1,6 +1,5 @@
import logging
import sys
-import traceback
from django.utils.translation import gettext_lazy as _
from drf_spectacular.utils import OpenApiParameter, extend_schema
@@ -20,7 +19,6 @@ from rest_framework.views import APIView
from messages.models import Message
from messages.serializers import MessageSerializer
-from messages.utils import push_message_error
from ml_model.exceptions import DeploymentDisabled, TemplateNotFound, TemplateUnknownException, \
FileExtensionNotSupported, ExceededContextLengthError
from ml_model.services.base import SimpleService
@@ -176,7 +174,6 @@ class MessagesAPIView(APIView):
if isinstance(exc, InsufficientBalance):
return Response({'detail': f'{exc}'}, status=HTTP_402_PAYMENT_REQUIRED)
logger.exception(exc)
- push_message_error(input_message, str(exc), traceback.format_exc())
return Response(
{
'detail': _(
@@ -1,6 +1,5 @@
import logging
import sys
-import traceback
from drf_spectacular.utils import OpenApiParameter, extend_schema
from rest_framework.permissions import IsAuthenticated
@@ -10,7 +9,6 @@ from rest_framework.views import APIView
from messages.models import Message
from messages.serializers import MessageSerializer
-from messages.utils import push_message_error
from ml_model.models import NeuronModel
from ml_model.services.base import SimpleService
from payments.exceptions.insufficient_balance import InsufficientBalance
@@ -152,7 +150,6 @@ class MediaAPIView(APIView):
input_message.save()
if isinstance(exc, InsufficientBalance):
return Response({'detail': f'{exc}'}, status=HTTP_402_PAYMENT_REQUIRED)
- push_message_error(input_message, str(exc), traceback.format_exc())
return Response(f'Error: {exc}', status=400)
return Response(MessageSerializer(output_messages, many=True).data, 201)
else: