Processing of Side Effects of ActivityPub Activities for an ActivityPub Server
Project description
bovine_process
bovine_process
consists of the side effect logic of Activity objects. This means it contains the code, the logic that for an incoming object, one executes:
- Store object in bovine_store
- Add reference to inbox
- Perform side effects
- Enque object for bovine_pubsub
And a similar list of effects for outgoing objects, i.e
- Store object in bovine_store
- Add reference to outbox
- Perform side effects
- Send objects to follower's inbox
- Enque object for bovine_pubsub
The behavior defined in this package corresponds to 6. Client to Server Interactions and 7. Server to Server Interactions of the ActivityPub specification. However, only a small subset of side effects is implemented.
Implemented Side Effects
-
Create, Update, Delete on objects, i.e. basic crud
-
Like, Dislike, EmojiReact -> add to likes collection; Undo removes
-
Announce -> add to share collection; Undo removes
-
The same person can Like, Announce, etc.. multiple times
-
Create with inReplyTo -> add to replies collection; Delete removes
-
Follow and Accept
- Outgoing Accept of Follow adds to followers
- Incoming Accept of Follows adds to following
-
Specify Update checks
-
Authority checks.
-
Refactor for easier customization / extension. Adding a new side effect currently requires publishing a new package. This should not be the case.
Tests
The folder tests/data
contains test cases what side effects happen in the database for certain cases.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for bovine_process-0.5.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c5635ec8e2fbe8e19f3f955a48502bdc503f64f17b5473b244ed51f9a652cf0 |
|
MD5 | 9ae7164297b677cffe50dfc1c8bd395d |
|
BLAKE2b-256 | b12b3d9a26fd8a925479bcb2bc9360063da4788d2a4babf66bb0ef2728ba8d4e |