Social
Data Model
classDiagram
User .. Piece
class Piece {
+User owner
+int visibility
}
User .. Activity
class Activity {
+User owner
+int visibility
+Piece action_object
}
Activity .. Piece
Activity .. Item
class Item {
+str title
+str brief
-enum type
}
Activities
Activity data may be used for:
1. timeline view of a user and their friends
2. chronological view of a user's actions on an item
3. ActivityStreams OrderedCollection for ActivityPub
However, 2 is currently implemented separately via ShelfLogManager in journal app, because users may want to change these records manually.
Local Timeline
| Local Timeline Activities | action object class |
|---|---|
| Add an Item to Shelf | ShelfMember |
| Create a Collection | Collection |
| Like a Collection | Like |
| Create a Review | Review |
Activity Streams
This is a list of activities that should be shown on the site, delivered as ActivityStreams, or both:
Add/Removean Item to / from a List:- add / remove Item to / from a user Collection
- mark Item as wishlist / progress / complete, which are essentially add to / remove from user's predefined Collection
Create/Update/Deletea user CollectionCreate/Update/Deletea Content with anObject Linkto ItemCreate/Update/Deletea Comment or ReviewCreate/Update/Deletea Quote or Note
Create/Update/Deletea Reply to another ContentAnnounce/Likea Content / Collection, orUndothat- Social Graph interaction
Follow/UndoFollowAccept/RejectBlock/UndoBlock
Supporting these activities above will be essential to a reasonable ActivityPub server implementation.
There are additional activities not made into ActivityPub MVP but technically possible to support in future:
- Create / Update / Delete a Content in different flavors, without link to Item
* Note or Article without link to Item
* DM (Note)
* Question
* Article
* Page
* Image
* Audio
* Video
* Event
- Add Content to / Remove Content from a user Collection
* Pin / Unpin
- Move/Delete account
ActivityPub
TBA
References: - https://www.w3.org/TR/activitypub/ - https://www.w3.org/TR/activitystreams-core/ - https://www.w3.org/TR/activitystreams-vocabulary/ - https://www.w3.org/TR/json-ld/ - https://codeberg.org/fediverse/fep/src/branch/main/fep/e232/fep-e232.md - https://socialhub.activitypub.rocks/t/guide-for-new-activitypub-implementers/479 - https://docs.joinmastodon.org/spec/activitypub/ - https://docs.joinbookwyrm.com/activitypub.html - https://github.com/Podcastindex-org/podcast-namespace/blob/main/proposal-docs/social/social.md#socialinteract-element - https://dev.funkwhale.audio/funkwhale/funkwhale/-/tree/develop/docs/developer_documentation/federation - https://github.com/inventaire/inventaire/issues/187 - https://github.com/inventaire/inventaire/issues/533