|
5 | 5 | from better_profanity import profanity |
6 | 6 | import nltk |
7 | 7 | from .models import Room, Message |
| 8 | +from asgiref.sync import async_to_sync |
| 9 | +from channels.layers import get_channel_layer |
| 10 | +from django.utils.text import slugify |
| 11 | + |
8 | 12 |
|
9 | 13 | # Download required NLTK data |
10 | 14 | if os.getenv('WORKER') == '1': |
@@ -55,13 +59,29 @@ def moderate_message_content(message_id): |
55 | 59 | message.moderated_at = timezone.now() |
56 | 60 | message.save() |
57 | 61 |
|
58 | | - return { |
| 62 | + response = { |
59 | 63 | 'message_id': message_id, |
60 | 64 | 'is_flagged': message.is_flagged, |
61 | 65 | 'status': message.moderation_status, |
62 | 66 | 'notes': moderation_notes |
63 | 67 | } |
64 | 68 |
|
| 69 | + channel_layer = get_channel_layer() |
| 70 | + room_group_name = f"chat_{slugify(message.room.name)}" |
| 71 | + |
| 72 | + print(f"Sending moderation update to room group: {room_group_name}") |
| 73 | + async_to_sync(channel_layer.group_send)( |
| 74 | + room_group_name, |
| 75 | + { |
| 76 | + 'type': 'moderation_update', |
| 77 | + 'message_id': message_id, |
| 78 | + 'status': message.moderation_status, |
| 79 | + 'notes': moderation_notes, |
| 80 | + } |
| 81 | + ) |
| 82 | + |
| 83 | + return response |
| 84 | + |
65 | 85 | except Message.DoesNotExist: |
66 | 86 | return f"Message with id {message_id} not found" |
67 | 87 |
|
|
0 commit comments