2020-09-17 20:02:52 +00:00
|
|
|
''' defines activitypub collections (lists) '''
|
2021-02-02 17:37:46 +00:00
|
|
|
from dataclasses import dataclass, field
|
2020-09-17 20:02:52 +00:00
|
|
|
from typing import List
|
|
|
|
|
|
|
|
from .base_activity import ActivityObject
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass(init=False)
|
|
|
|
class OrderedCollection(ActivityObject):
|
|
|
|
''' structure of an ordered collection activity '''
|
|
|
|
totalItems: int
|
|
|
|
first: str
|
2021-02-02 17:37:46 +00:00
|
|
|
last: str = None
|
|
|
|
name: str = None
|
|
|
|
owner: str = None
|
2021-02-02 19:17:31 +00:00
|
|
|
type: str = 'OrderedCollection'
|
|
|
|
|
|
|
|
@dataclass(init=False)
|
|
|
|
class OrderedCollectionPrivate(OrderedCollection):
|
2021-02-17 18:15:22 +00:00
|
|
|
''' an ordered collection with privacy settings '''
|
2021-02-02 17:37:46 +00:00
|
|
|
to: List[str] = field(default_factory=lambda: [])
|
|
|
|
cc: List[str] = field(default_factory=lambda: [])
|
2020-09-17 20:02:52 +00:00
|
|
|
|
2021-02-02 19:17:31 +00:00
|
|
|
@dataclass(init=False)
|
|
|
|
class Shelf(OrderedCollectionPrivate):
|
|
|
|
''' structure of an ordered collection activity '''
|
|
|
|
type: str = 'Shelf'
|
2020-09-17 20:02:52 +00:00
|
|
|
|
2021-02-02 19:05:47 +00:00
|
|
|
@dataclass(init=False)
|
2021-02-02 19:17:31 +00:00
|
|
|
class BookList(OrderedCollectionPrivate):
|
2021-02-02 19:05:47 +00:00
|
|
|
''' structure of an ordered collection activity '''
|
|
|
|
summary: str = None
|
|
|
|
curation: str = 'closed'
|
2021-02-02 22:59:40 +00:00
|
|
|
type: str = 'BookList'
|
2021-02-02 19:05:47 +00:00
|
|
|
|
|
|
|
|
2020-09-17 20:02:52 +00:00
|
|
|
@dataclass(init=False)
|
|
|
|
class OrderedCollectionPage(ActivityObject):
|
|
|
|
''' structure of an ordered collection activity '''
|
|
|
|
partOf: str
|
|
|
|
orderedItems: List
|
2021-02-17 21:33:48 +00:00
|
|
|
next: str = None
|
|
|
|
prev: str = None
|
2020-09-17 20:02:52 +00:00
|
|
|
type: str = 'OrderedCollectionPage'
|