add signals

This commit is contained in:
2019-01-30 23:52:05 +03:00
parent 56f516e25b
commit fbfe97fe5b
3 changed files with 33 additions and 2 deletions
+24
View File
@@ -0,0 +1,24 @@
from django.db import transaction
from pyrogram import Error
from .client import get_client
from .models import Chat, AggregationSource
from .tasks import collect_new_messages
def aggregation_source_deleted(sender, instance: AggregationSource, **kwargs):
if not AggregationSource.objects.filter(chat_id=instance.chat_id):
Chat.objects.filter(chat_id=instance.chat_id).delete()
def chat_created(sender, instance: Chat, created, **kwargs):
if created:
transaction.on_commit(lambda: collect_new_messages.delay(instance.pk))
def chat_deleted(sender, instance: Chat, **kwargs):
with get_client() as client:
try:
client.leave_chat(instance.chat_id)
except Error:
pass