@@ 634,6 634,12 @@ class BaseActivity(object, metaclass=_Ac
return out
+class Mention(BaseActivity):
+ ACTIVITY_TYPE = ActivityType.MENTION
+ OBJECT_REQUIRED = False
+ ACTOR_REQUIRED = False
+
+
class Person(BaseActivity):
ACTIVITY_TYPE = ActivityType.PERSON
OBJECT_REQUIRED = False
@@ 947,6 953,21 @@ class Note(BaseActivity):
return False
+ def get_mentions(self) -> List["Mention"]:
+ if self.tag is None:
+ return []
+
+ mentions = []
+ for tag in self.tag:
+ # Some AP implemention return "type"less tag for links
+ if "type" not in tag:
+ continue
+
+ if _has_type(tag["type"], ActivityType.MENTION):
+ mentions.append(Mention(**tag))
+
+ return mentions
+
def get_in_reply_to(self) -> Optional[str]:
return _get_id(self.inReplyTo)