sketchy fix for boost broadcasting

This commit is contained in:
Mouse Reeve
2021-02-06 21:26:39 -08:00
parent 63fe9777e2
commit 272685f27d
3 changed files with 16 additions and 11 deletions

View File

@ -183,7 +183,12 @@ class ObjectMixin(ActivitypubMixin):
# broadcast Create activities for objects owned by a local user
if not user or not user.local:
return
activity = self.to_create_activity(user)
try:
activity = self.to_create_activity(user)
except KeyError:
# janky as heck, this catches the mutliple inheritence chain
# for boosts and ignores this auxilliary broadcast
return
self.broadcast(activity, user)
return

View File

@ -15,6 +15,7 @@ from .base_model import BookWyrmModel
from .fields import image_serializer
from . import fields
class Status(OrderedCollectionPageMixin, BookWyrmModel):
''' any post, like a reply to a review, etc '''
user = fields.ForeignKey(
@ -127,14 +128,6 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel):
return activity
def save(self, *args, **kwargs):
''' update user active time '''
if self.user.local:
self.user.last_active_date = timezone.now()
self.user.save(broadcast=False)
return super().save(*args, **kwargs)
class GeneratedNote(Status):
''' these are app-generated messages about user activity '''
@property
@ -232,6 +225,8 @@ class Boost(ActivityMixin, Status):
related_name='boosters',
activitypub_field='object',
)
activity_serializer = activitypub.Boost
def __init__(self, *args, **kwargs):
''' the user field is "actor" here instead of "attributedTo" '''
@ -245,8 +240,6 @@ class Boost(ActivityMixin, Status):
self.image_fields = []
self.deserialize_reverse_fields = []
activity_serializer = activitypub.Boost
# This constraint can't work as it would cross tables.
# class Meta:
# unique_together = ('user', 'boosted_status')