diff --git a/kepi/trilby_api/models/status.py b/kepi/trilby_api/models/status.py index d0c12df..5164e05 100644 --- a/kepi/trilby_api/models/status.py +++ b/kepi/trilby_api/models/status.py @@ -14,6 +14,7 @@ from django.conf import settings import kepi.bowler_pub.crypto as crypto from kepi.bowler_pub.utils import uri_to_url, is_local import kepi.trilby_api.utils as trilby_utils +import kepi.trilby_api.signals as trilby_signals from django.utils.timezone import now from django.core.exceptions import ValidationError from polymorphic.models import PolymorphicModel @@ -234,6 +235,8 @@ class Status(PolymorphicModel): def save(self, *args, **kwargs): + newly_made = self.pk is None + if self.reblog_of == self: raise ValueError("Status can't be a reblog of itself") @@ -242,6 +245,9 @@ class Status(PolymorphicModel): super().save(*args, **kwargs) + if newly_made: + trilby_signals.posted.send(sender=self) + def __str__(self): return '[Status %s: %s]' % ( self.id, diff --git a/kepi/trilby_api/signals.py b/kepi/trilby_api/signals.py index 0727fd3..ee7137e 100644 --- a/kepi/trilby_api/signals.py +++ b/kepi/trilby_api/signals.py @@ -33,5 +33,9 @@ deleted = Signal( 'entombed', ]) +posted = Signal( + providing_args=[ + ]) + reblogged = Signal( )