Fixes create status handler

This commit is contained in:
Mouse Reeve 2020-12-12 20:59:41 -08:00
parent 45e159775f
commit ffc4cc2018

View file

@ -185,12 +185,13 @@ def handle_follow_reject(activity):
def handle_create(activity): def handle_create(activity):
''' someone did something, good on them ''' ''' someone did something, good on them '''
# deduplicate incoming activities # deduplicate incoming activities
status_id = activity['object']['id'] activity = activity['object']
status_id = activity['id']
if models.Status.objects.filter(remote_id=status_id).count(): if models.Status.objects.filter(remote_id=status_id).count():
return return
serializer = activitypub.activity_objects[activity['type']] serializer = activitypub.activity_objects[activity['type']]
status = serializer(**activity) activity = serializer(**activity)
try: try:
model = models.activity_models[activity.type] model = models.activity_models[activity.type]
except KeyError: except KeyError:
@ -198,13 +199,14 @@ def handle_create(activity):
return return
if activity.type == 'Note': if activity.type == 'Note':
# discard notes that aren't replies to existing statuses
reply = models.Status.objects.filter( reply = models.Status.objects.filter(
remote_id=activity.inReplyTo remote_id=activity.inReplyTo
).first() ).first()
if not reply: if not reply:
return return
activity.to_model(model) status = activity.to_model(model)
# create a notification if this is a reply # create a notification if this is a reply
if status.reply_parent and status.reply_parent.user.local: if status.reply_parent and status.reply_parent.user.local:
status_builder.create_notification( status_builder.create_notification(