Tweak recipients handling
1 files changed, 16 insertions(+), 4 deletions(-)

M little_boxes/activitypub.py
M little_boxes/activitypub.py +16 -4
@@ 725,7 725,11 @@ class Undo(BaseActivity):
         if obj.ACTIVITY_TYPE == ActivityType.FOLLOW:
             return [obj.get_object().id]
         else:
-            return [obj.get_object().get_actor().id]
+            recipients = [obj.get_object().get_actor().id]
+            for field in ["to", "cc"]:
+                if field in self._data:
+                    recipients.extend(_to_list(self._data[field]))
+            return list(set(recipients))
 
 
 class Like(BaseActivity):

          
@@ 735,7 739,11 @@ class Like(BaseActivity):
     ACTOR_REQUIRED = True
 
     def _recipients(self) -> List[str]:
-        return [self.get_object().get_actor().id]
+        recipients = [self.get_object().get_actor().id]
+        for field in ["to", "cc"]:
+            if field in self._data:
+                recipients.extend(_to_list(self._data[field]))
+        return list(set(recipients))
 
     def build_undo(self) -> BaseActivity:
         return Undo(

          
@@ 787,8 795,12 @@ class Delete(BaseActivity):
         return obj
 
     def _recipients(self) -> List[str]:
-        obj = self._get_actual_object()
-        return obj._recipients()
+        recipients = []
+        for field in ["to", "cc"]:
+            if field in self._data:
+                recipients.extend(_to_list(self._data[field]))
+
+        return list(set(recipients))
 
 
 class Update(BaseActivity):