bookwyrm/bookwyrm/activitypub/__init__.py

37 lines
1.4 KiB
Python
Raw Normal View History

2021-03-08 16:49:10 +00:00
""" bring activitypub functions into the namespace """
import inspect
import sys
2021-02-16 01:23:17 +00:00
from .base_activity import ActivityEncoder, Signature, naive_parse
from .base_activity import Link, Mention, Hashtag
2023-09-24 02:31:01 +00:00
from .base_activity import (
ActivitySerializerError,
resolve_remote_id,
get_representative,
)
2021-04-17 18:47:48 +00:00
from .image import Document, Image
from .note import Note, GeneratedNote, Article, Comment, Quotation
from .note import Review, Rating
from .note import Tombstone
from .ordered_collection import OrderedCollection, OrderedCollectionPage
2021-04-08 21:16:34 +00:00
from .ordered_collection import CollectionItem, ListItem, ShelfItem
from .ordered_collection import BookList, Shelf
2020-11-30 18:32:13 +00:00
from .person import Person, PublicKey
from .response import ActivitypubResponse
from .book import Edition, Work, Author
2020-10-14 15:38:51 +00:00
from .verbs import Create, Delete, Undo, Update
2021-01-23 19:03:10 +00:00
from .verbs import Follow, Accept, Reject, Block
2021-02-23 23:51:02 +00:00
from .verbs import Add, Remove
2021-02-16 05:20:00 +00:00
from .verbs import Announce, Like
2023-08-29 11:07:41 +00:00
from .verbs import Move
# this creates a list of all the Activity types that we can serialize,
# so when an Activity comes in from outside, we can check if it's known
cls_members = inspect.getmembers(sys.modules[__name__], inspect.isclass)
2021-03-08 16:49:10 +00:00
activity_objects = {c[0]: c[1] for c in cls_members if hasattr(c[1], "to_model")}
2021-02-16 01:23:17 +00:00
def parse(activity_json):
2021-04-26 16:15:42 +00:00
"""figure out what activity this is and parse it"""
2021-02-16 01:23:17 +00:00
return naive_parse(activity_objects, activity_json)