Presence references

Managers

class whalesong.managers.presence.PresenceCollectionManager(driver, manager_path='')

Bases: whalesong.managers.BaseCollectionManager

Presence collection manager.

Note

Be aware Whatsapp has some limitations about presence announcement.

  • You must be available in order to receive presence announcements. Look at display information.
  • After a while, other peer must see Whalesong user available in order to send presence announcement. But if it is not available Whalesong user is not going to announce its presence. So, presence announcements are made after first message.
Parameters:
__getitem__(name)

Get a submanager. It could be a explicit submanager or contained model manager.

Parameters:name (str) – Field where submanager was stored.
Return type:Union[BaseManager, ~MODEL_MANAGER_TYPE]
__getattr__(name)

Get a submanager. It could be a explicit submanager or contained model manager.

Parameters:name (str) – Field where submanager was stored.
Return type:Union[BaseManager, ~MODEL_MANAGER_TYPE]
MODEL_MANAGER_CLASS

alias of PresenceManager

add_submanager(name, submanager)

Add a submanager.

Parameters:
  • name (str) – Field where manager will be stored.
  • submanager (BaseManager) – Submanager
find_item_by_id(item_id)

Find model by identifier. If item is not in collection it will try to load it.

Parameters:item_id (str) – Model identifier.
Return type:Result[+MODEL_TYPE]
Returns:Model object.
get_commands()

Get manager available static commands.

Return type:Result[List[str]]
Returns:Manager static commands.
get_first()

Get first item in collection.

Return type:Result[+MODEL_TYPE]
Returns:Model object.
get_item_by_id(item_id)

Get model by identifier.

Parameters:item_id (str) – Model identifier.
Return type:Result[+MODEL_TYPE]
Returns:Model object.
get_item_result_class()
Return type:Result[+MODEL_TYPE]
get_items()

Get all items on collection.

Return type:IteratorResult[+MODEL_TYPE]
Returns:Async iterator
get_iterator_result_class()
Return type:IteratorResult[+MODEL_TYPE]
get_last()

Get last item in collection.

Return type:Result[+MODEL_TYPE]
Returns:Model object.
get_length()

Get collection items count.

Return type:Result[int]
Returns:Items count
get_monitor_result_class()
Return type:MonitorResult[+MODEL_TYPE]
get_submanager(name)

Get a submanager. It could be a explicit submanager or contained model manager.

Parameters:name (str) – Field where submanager was stored.
Return type:Union[BaseManager, ~MODEL_MANAGER_TYPE]
monitor_add()

Monitor add item collection. Iterate each time a item is added to collection.

Return type:MonitorResult[+MODEL_TYPE]
Returns:Model object iterator
monitor_change()

Monitor change item collection. Iterate each time a item change in collection.

Return type:MonitorResult[+MODEL_TYPE]
Returns:Model object iterator
monitor_field(field)

Monitor item’s field change. Iterate each time a field changed in any item of collection.

Return type:MonitorResult[Dict[str, Any]]
Returns:Model object iterator
monitor_remove()

Monitor remove item collection. Iterate each time a item is removed from collection.

Return type:MonitorResult[+MODEL_TYPE]
Returns:Model object iterator
remove_item_by_id(item_id)

Remove item by identifier.

Parameters:item_id (str) – Model identifier.
Return type:Result[None]
remove_submanager(name)

Remove a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:Result[~T]
class whalesong.managers.presence.PresenceManager(driver, manager_path='')

Bases: whalesong.managers.BaseModelManager

Presence manager.

__getitem__(name)

Get a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:BaseManager
__getattr__(name)

Get a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:BaseManager
MODEL_CLASS

alias of Presence

subscribe()
Return type:Result[Presence]
add_submanager(name, submanager)

Add a submanager.

Parameters:
  • name (str) – Field where manager will be stored.
  • submanager (BaseManager) – Submanager
get_commands()

Get manager available static commands.

Return type:Result[List[str]]
Returns:Manager static commands.
get_field_monitor_result_class(field)
Return type:MonitorResult[Dict[str, Any]]
get_model()

Get model object

Return type:Result[+MODEL_TYPE]
Returns:Model object
get_model_result_class()
Return type:Result[+MODEL_TYPE]
get_monitor_result_class()
Return type:MonitorResult[+MODEL_TYPE]
get_submanager(name)

Get a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:BaseManager
map_model(data)
Return type:+MODEL_TYPE
monitor_field(field)

Monitor any change on a model’s field.

Parameters:field (str) – Field to monitor.
Return type:MonitorResult[Dict[str, Any]]
Returns:Model monitor
monitor_model()

Monitor any change on model.

Return type:MonitorResult[+MODEL_TYPE]
Returns:Model monitor
remove_submanager(name)

Remove a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:Result[~T]
class whalesong.managers.presence.ChatStateCollectionManager(driver, manager_path='')

Bases: whalesong.managers.BaseCollectionManager

Chat state collection manager.

Parameters:
__getitem__(name)

Get a submanager. It could be a explicit submanager or contained model manager.

Parameters:name (str) – Field where submanager was stored.
Return type:Union[BaseManager, ~MODEL_MANAGER_TYPE]
__getattr__(name)

Get a submanager. It could be a explicit submanager or contained model manager.

Parameters:name (str) – Field where submanager was stored.
Return type:Union[BaseManager, ~MODEL_MANAGER_TYPE]
MODEL_MANAGER_CLASS

alias of ChatStateManager

add_submanager(name, submanager)

Add a submanager.

Parameters:
  • name (str) – Field where manager will be stored.
  • submanager (BaseManager) – Submanager
find_item_by_id(item_id)

Find model by identifier. If item is not in collection it will try to load it.

Parameters:item_id (str) – Model identifier.
Return type:Result[+MODEL_TYPE]
Returns:Model object.
get_commands()

Get manager available static commands.

Return type:Result[List[str]]
Returns:Manager static commands.
get_first()

Get first item in collection.

Return type:Result[+MODEL_TYPE]
Returns:Model object.
get_item_by_id(item_id)

Get model by identifier.

Parameters:item_id (str) – Model identifier.
Return type:Result[+MODEL_TYPE]
Returns:Model object.
get_item_result_class()
Return type:Result[+MODEL_TYPE]
get_items()

Get all items on collection.

Return type:IteratorResult[+MODEL_TYPE]
Returns:Async iterator
get_iterator_result_class()
Return type:IteratorResult[+MODEL_TYPE]
get_last()

Get last item in collection.

Return type:Result[+MODEL_TYPE]
Returns:Model object.
get_length()

Get collection items count.

Return type:Result[int]
Returns:Items count
get_monitor_result_class()
Return type:MonitorResult[+MODEL_TYPE]
get_submanager(name)

Get a submanager. It could be a explicit submanager or contained model manager.

Parameters:name (str) – Field where submanager was stored.
Return type:Union[BaseManager, ~MODEL_MANAGER_TYPE]
monitor_add()

Monitor add item collection. Iterate each time a item is added to collection.

Return type:MonitorResult[+MODEL_TYPE]
Returns:Model object iterator
monitor_change()

Monitor change item collection. Iterate each time a item change in collection.

Return type:MonitorResult[+MODEL_TYPE]
Returns:Model object iterator
monitor_field(field)

Monitor item’s field change. Iterate each time a field changed in any item of collection.

Return type:MonitorResult[Dict[str, Any]]
Returns:Model object iterator
monitor_remove()

Monitor remove item collection. Iterate each time a item is removed from collection.

Return type:MonitorResult[+MODEL_TYPE]
Returns:Model object iterator
remove_item_by_id(item_id)

Remove item by identifier.

Parameters:item_id (str) – Model identifier.
Return type:Result[None]
remove_submanager(name)

Remove a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:Result[~T]
class whalesong.managers.presence.ChatStateManager(driver, manager_path='')

Bases: whalesong.managers.BaseModelManager

Chat state manager.

Parameters:
__getitem__(name)

Get a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:BaseManager
__getattr__(name)

Get a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:BaseManager
MODEL_CLASS

alias of ChatState

add_submanager(name, submanager)

Add a submanager.

Parameters:
  • name (str) – Field where manager will be stored.
  • submanager (BaseManager) – Submanager
get_commands()

Get manager available static commands.

Return type:Result[List[str]]
Returns:Manager static commands.
get_field_monitor_result_class(field)
Return type:MonitorResult[Dict[str, Any]]
get_model()

Get model object

Return type:Result[+MODEL_TYPE]
Returns:Model object
get_model_result_class()
Return type:Result[+MODEL_TYPE]
get_monitor_result_class()
Return type:MonitorResult[+MODEL_TYPE]
get_submanager(name)

Get a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:BaseManager
map_model(data)
Return type:+MODEL_TYPE
monitor_field(field)

Monitor any change on a model’s field.

Parameters:field (str) – Field to monitor.
Return type:MonitorResult[Dict[str, Any]]
Returns:Model monitor
monitor_model()

Monitor any change on model.

Return type:MonitorResult[+MODEL_TYPE]
Returns:Model monitor
remove_submanager(name)

Remove a submanager.

Parameters:name (str) – Field where submanager was stored.
Return type:Result[~T]

Models

Model whalesong.managers.presence.ChatState(data=None, flat=False, *args, **kwargs)

Bases: whalesong.models.BaseModel

class Type

Bases: enum.Enum

An enumeration.

AVAILABLE = 'available'
UNAVAILABLE = 'unavailable'
COMPOSING = 'composing'
RECORDING = 'recording'
property deny: bool

BooleanField field

property timestamp: datetime

DateTimeField field

Aliases:
  • t
property type: Type

EnumField field (whalesong.managers.presence.Type)

property id: str [READ ONLY]

StringIdField field [READ ONLY]

property isState: bool

BooleanField field

Aliases:
  • is_state
property updateTime: datetime

DateTimeField field

Aliases:
  • update_time
Model whalesong.managers.presence.Presence(data=None, flat=False, *args, **kwargs)

Bases: whalesong.models.BaseModel

Presence model.

property id: str [READ ONLY]

StringIdField field [READ ONLY]

property chatActive: bool

BooleanField field

Aliases:
  • chat_active
property chatState: ChatState

ModelField field (whalesong.managers.presence.ChatState)

Aliases:
  • chat_state
property chatStates: List of ChatState

Array of ModelField field (whalesong.managers.presence.ChatState)

Aliases:
  • chat_states
  • chatstates
property hasData: bool

BooleanField field

Aliases:
  • has_data
property isGroup: bool

BooleanField field

Aliases:
  • is_group
property isUser: bool

BooleanField field

Aliases:
  • is_user
property isOnline: bool

BooleanField field

Aliases:
  • is_online
property isSubscribed: bool

BooleanField field

Aliases:
  • is_subscribed