diff --git a/docs/conf.py b/docs/conf.py index 8e40314..d9c243d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -66,6 +66,10 @@ rst_prolog = """ # default_role = "any" +# Make the reference parsing more strict +# +nitpicky = True + # If true, '()' will be appended to :func: etc. cross-reference text. # add_function_parentheses = False diff --git a/docs/intro.rst b/docs/intro.rst index 0334140..74b2a88 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -46,7 +46,7 @@ Threads A thread can refer to two things: A Messenger group chat or a single Facebook user -:class:`models.ThreadType` is an enumerator with two values: ``USER`` and ``GROUP``. +:class:`ThreadType` is an enumerator with two values: ``USER`` and ``GROUP``. These will specify whether the thread is a single user chat or a group chat. This is required for many of ``fbchat``'s functions, since Facebook differentiates between these two internally diff --git a/fbchat/_client.py b/fbchat/_client.py index 3fc2235..3415883 100644 --- a/fbchat/_client.py +++ b/fbchat/_client.py @@ -309,7 +309,7 @@ class Client(object): :param thread_id: User/Group ID to default to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ self._default_thread_id = thread_id self._default_thread_type = thread_type @@ -335,11 +335,11 @@ class Client(object): Get all threads in thread_location. Threads will be sorted from newest to oldest. - :param thread_location: models.ThreadLocation: INBOX, PENDING, ARCHIVED or OTHER + :param thread_location: ThreadLocation: INBOX, PENDING, ARCHIVED or OTHER :param before: Fetch only thread before this epoch (in ms) (default all threads) :param after: Fetch only thread after this epoch (in ms) (default all threads) :param limit: The max. amount of threads to fetch (default all threads) - :return: :class:`models.Thread` objects + :return: :class:`Thread` objects :rtype: list :raises: FBchatException if request failed """ @@ -387,8 +387,8 @@ class Client(object): """ Get all users involved in threads. - :param threads: models.Thread: List of threads to check for users - :return: :class:`models.User` objects + :param threads: Thread: List of threads to check for users + :return: :class:`User` objects :rtype: list :raises: FBchatException if request failed """ @@ -413,7 +413,7 @@ class Client(object): """ Gets all users the client is currently chatting with - :return: :class:`models.User` objects + :return: :class:`User` objects :rtype: list :raises: FBchatException if request failed """ @@ -435,7 +435,7 @@ class Client(object): :param name: Name of the user :param limit: The max. amount of users to fetch - :return: :class:`models.User` objects, ordered by relevance + :return: :class:`User` objects, ordered by relevance :rtype: list :raises: FBchatException if request failed """ @@ -449,7 +449,7 @@ class Client(object): Find and get page by its name :param name: Name of the page - :return: :class:`models.Page` objects, ordered by relevance + :return: :class:`Page` objects, ordered by relevance :rtype: list :raises: FBchatException if request failed """ @@ -464,7 +464,7 @@ class Client(object): :param name: Name of the group thread :param limit: The max. amount of groups to fetch - :return: :class:`models.Group` objects, ordered by relevance + :return: :class:`Group` objects, ordered by relevance :rtype: list :raises: FBchatException if request failed """ @@ -479,7 +479,7 @@ class Client(object): :param name: Name of the thread :param limit: The max. amount of groups to fetch - :return: :class:`models.User`, :class:`models.Group` and :class:`models.Page` objects, ordered by relevance + :return: :class:`User`, :class:`Group` and :class:`Page` objects, ordered by relevance :rtype: list :raises: FBchatException if request failed """ @@ -516,7 +516,7 @@ class Client(object): :type offset: int :type limit: int :return: Found Message IDs - :rtype: generator + :rtype: typing.Iterable :raises: FBchatException if request failed """ thread_id, thread_type = self._getThread(thread_id, None) @@ -537,7 +537,7 @@ class Client(object): def searchForMessages(self, query, offset=0, limit=5, thread_id=None): """ - Find and get :class:`models.Message` objects by query + Find and get :class:`Message` objects by query .. warning:: This method sends request for every found message ID. @@ -548,8 +548,8 @@ class Client(object): :param thread_id: User/Group ID to search in. See :ref:`intro_threads` :type offset: int :type limit: int - :return: Found :class:`models.Message` objects - :rtype: generator + :return: Found :class:`Message` objects + :rtype: typing.Iterable :raises: FBchatException if request failed """ message_ids = self.searchForMessageIDs( @@ -563,13 +563,13 @@ class Client(object): Searches for messages in all threads :param query: Text to search for - :param fetch_messages: Whether to fetch :class:`models.Message` objects or IDs only + :param fetch_messages: Whether to fetch :class:`Message` objects or IDs only :param thread_limit: Max. number of threads to retrieve :param message_limit: Max. number of messages to retrieve :type thread_limit: int :type message_limit: int - :return: Dictionary with thread IDs as keys and generators to get messages as values - :rtype: generator + :return: Dictionary with thread IDs as keys and iterables to get messages as values + :rtype: typing.Dict[str, typing.Iterable] :raises: FBchatException if request failed """ data = {"query": query, "snippetLimit": thread_limit} @@ -634,7 +634,7 @@ class Client(object): Sends two requests, to fetch all available info! :param user_ids: One or more user ID(s) to query - :return: :class:`models.User` objects, labeled by their ID + :return: :class:`User` objects, labeled by their ID :rtype: dict :raises: FBchatException if request failed """ @@ -656,7 +656,7 @@ class Client(object): Sends two requests, to fetch all available info! :param page_ids: One or more page ID(s) to query - :return: :class:`models.Page` objects, labeled by their ID + :return: :class:`Page` objects, labeled by their ID :rtype: dict :raises: FBchatException if request failed """ @@ -675,7 +675,7 @@ class Client(object): Get groups' info from IDs, unordered :param group_ids: One or more group ID(s) to query - :return: :class:`models.Group` objects, labeled by their ID + :return: :class:`Group` objects, labeled by their ID :rtype: dict :raises: FBchatException if request failed """ @@ -697,7 +697,7 @@ class Client(object): Sends two requests if users or pages are present, to fetch all available info! :param thread_ids: One or more thread ID(s) to query - :return: :class:`models.Thread` objects, labeled by their ID + :return: :class:`Thread` objects, labeled by their ID :rtype: dict :raises: FBchatException if request failed """ @@ -762,7 +762,7 @@ class Client(object): :param before: A timestamp, indicating from which point to retrieve messages :type limit: int :type before: int - :return: :class:`models.Message` objects + :return: :class:`Message` objects :rtype: list :raises: FBchatException if request failed """ @@ -802,11 +802,11 @@ class Client(object): :param offset: Deprecated. Do not use! :param limit: Max. number of threads to retrieve. Capped at 20 - :param thread_location: models.ThreadLocation: INBOX, PENDING, ARCHIVED or OTHER + :param thread_location: ThreadLocation: INBOX, PENDING, ARCHIVED or OTHER :param before: A timestamp (in milliseconds), indicating from which point to retrieve threads :type limit: int :type before: int - :return: :class:`models.Thread` objects + :return: :class:`Thread` objects :rtype: list :raises: FBchatException if request failed """ @@ -899,12 +899,12 @@ class Client(object): def fetchMessageInfo(self, mid, thread_id=None): """ - Fetches :class:`models.Message` object from the message id + Fetches :class:`Message` object from the message id :param mid: Message ID to fetch from :param thread_id: User/Group ID to get message info from. See :ref:`intro_threads` - :return: :class:`models.Message` object - :rtype: models.Message + :return: :class:`Message` object + :rtype: Message :raises: FBchatException if request failed """ thread_id, thread_type = self._getThread(thread_id, None) @@ -913,7 +913,7 @@ class Client(object): def fetchPollOptions(self, poll_id): """ - Fetches list of :class:`models.PollOption` objects from the poll id + Fetches list of :class:`PollOption` objects from the poll id :param poll_id: Poll ID to fetch from :rtype: list @@ -925,11 +925,11 @@ class Client(object): def fetchPlanInfo(self, plan_id): """ - Fetches a :class:`models.Plan` object from the plan id + Fetches a :class:`Plan` object from the plan id :param plan_id: Plan ID to fetch from - :return: :class:`models.Plan` object - :rtype: models.Plan + :return: :class:`Plan` object + :rtype: Plan :raises: FBchatException if request failed """ data = {"event_reminder_id": plan_id} @@ -964,7 +964,7 @@ class Client(object): def getUserActiveStatus(self, user_id): """ - Gets friend active status as an :class:`models.ActiveStatus` object. + Gets friend active status as an :class:`ActiveStatus` object. Returns ``None`` if status isn't known. .. warning:: @@ -972,7 +972,7 @@ class Client(object): :param user_id: ID of the user :return: Given user active status - :rtype: models.ActiveStatus + :rtype: ActiveStatus """ return self._buddylist.get(str(user_id)) @@ -1090,8 +1090,8 @@ class Client(object): :param message: Message to send :param thread_id: User/Group ID to send to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type message: models.Message - :type thread_type: models.ThreadType + :type message: Message + :type thread_type: ThreadType :return: :ref:`Message ID ` of the sent message :raises: FBchatException if request failed """ @@ -1132,7 +1132,7 @@ class Client(object): :param wave_first: Whether to wave first or wave back :param thread_id: User/Group ID to send to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type thread_type: models.ThreadType + :type thread_type: ThreadType :return: :ref:`Message ID ` of the sent message :raises: FBchatException if request failed """ @@ -1155,8 +1155,8 @@ class Client(object): :param payload: Optional answer to the quick reply :param thread_id: User/Group ID to send to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type quick_reply: models.QuickReply - :type thread_type: models.ThreadType + :type quick_reply: QuickReply + :type thread_type: ThreadType :return: :ref:`Message ID ` of the sent message :raises: FBchatException if request failed """ @@ -1168,7 +1168,7 @@ class Client(object): elif isinstance(quick_reply, QuickReplyLocation): if not isinstance(payload, LocationAttachment): raise ValueError( - "Payload must be an instance of `fbchat.models.LocationAttachment`" + "Payload must be an instance of `fbchat.LocationAttachment`" ) return self.sendLocation( payload, thread_id=thread_id, thread_type=thread_type @@ -1216,9 +1216,9 @@ class Client(object): :param message: Additional message :param thread_id: User/Group ID to send to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type location: models.LocationAttachment - :type message: models.Message - :type thread_type: models.ThreadType + :type location: LocationAttachment + :type message: Message + :type thread_type: ThreadType :return: :ref:`Message ID ` of the sent message :raises: FBchatException if request failed """ @@ -1240,9 +1240,9 @@ class Client(object): :param message: Additional message :param thread_id: User/Group ID to send to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type location: models.LocationAttachment - :type message: models.Message - :type thread_type: models.ThreadType + :type location: LocationAttachment + :type message: Message + :type thread_type: ThreadType :return: :ref:`Message ID ` of the sent message :raises: FBchatException if request failed """ @@ -1314,7 +1314,7 @@ class Client(object): :param message: Additional message :param thread_id: User/Group ID to send to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type thread_type: models.ThreadType + :type thread_type: ThreadType :return: :ref:`Message ID ` of the sent files :raises: FBchatException if request failed """ @@ -1334,7 +1334,7 @@ class Client(object): :param message: Additional message :param thread_id: User/Group ID to send to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type thread_type: models.ThreadType + :type thread_type: ThreadType :return: :ref:`Message ID ` of the sent files :raises: FBchatException if request failed """ @@ -1355,7 +1355,7 @@ class Client(object): :param message: Additional message :param thread_id: User/Group ID to send to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type thread_type: models.ThreadType + :type thread_type: ThreadType :return: :ref:`Message ID ` of the sent files :raises: FBchatException if request failed """ @@ -1375,7 +1375,7 @@ class Client(object): :param message: Additional message :param thread_id: User/Group ID to send to. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type thread_type: models.ThreadType + :type thread_type: ThreadType :return: :ref:`Message ID ` of the sent files :raises: FBchatException if request failed """ @@ -1394,9 +1394,7 @@ class Client(object): thread_type=ThreadType.USER, is_gif=False, ): - """ - Deprecated. Use :func:`fbchat.Client._sendFiles` instead - """ + """Deprecated.""" if is_gif: mimetype = "image/gif" else: @@ -1649,7 +1647,7 @@ class Client(object): :param title: New group thread title :param thread_id: Group ID to change title of. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type thread_type: models.ThreadType + :type thread_type: ThreadType :raises: FBchatException if request failed """ thread_id, thread_type = self._getThread(thread_id, thread_type) @@ -1673,7 +1671,7 @@ class Client(object): :param user_id: User that will have their nickname changed :param thread_id: User/Group ID to change color of. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type thread_type: models.ThreadType + :type thread_type: ThreadType :raises: FBchatException if request failed """ thread_id, thread_type = self._getThread(thread_id, thread_type) @@ -1693,7 +1691,7 @@ class Client(object): :param color: New thread color :param thread_id: User/Group ID to change color of. See :ref:`intro_threads` - :type color: models.ThreadColor + :type color: ThreadColor :raises: FBchatException if request failed """ thread_id, thread_type = self._getThread(thread_id, None) @@ -1729,7 +1727,7 @@ class Client(object): :param message_id: :ref:`Message ID ` to react to :param reaction: Reaction emoji to use, if None removes reaction - :type reaction: models.MessageReaction or None + :type reaction: MessageReaction or None :raises: FBchatException if request failed """ data = { @@ -1749,7 +1747,7 @@ class Client(object): :param plan: Plan to set :param thread_id: User/Group ID to send plan to. See :ref:`intro_threads` - :type plan: models.Plan + :type plan: Plan :raises: FBchatException if request failed """ thread_id, thread_type = self._getThread(thread_id, None) @@ -1776,7 +1774,7 @@ class Client(object): :param plan: Plan to edit :param new_plan: New plan - :type plan: models.Plan + :type plan: Plan :raises: FBchatException if request failed """ data = { @@ -1828,7 +1826,7 @@ class Client(object): :param poll: Poll to create :param thread_id: User/Group ID to create poll in. See :ref:`intro_threads` - :type poll: models.Poll + :type poll: Poll :raises: FBchatException if request failed """ thread_id, thread_type = self._getThread(thread_id, None) @@ -1859,7 +1857,7 @@ class Client(object): :param new_options: List of the new option names :param thread_id: User/Group ID to change status in. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type thread_type: models.ThreadType + :type thread_type: ThreadType :raises: FBchatException if request failed """ data = {"question_id": poll_id} @@ -1884,8 +1882,8 @@ class Client(object): :param status: Specify the typing status :param thread_id: User/Group ID to change status in. See :ref:`intro_threads` :param thread_type: See :ref:`intro_threads` - :type status: models.TypingStatus - :type thread_type: models.ThreadType + :type status: TypingStatus + :type thread_type: ThreadType :raises: FBchatException if request failed """ thread_id, thread_type = self._getThread(thread_id, thread_type) @@ -2005,7 +2003,7 @@ class Client(object): """ Moves threads to specifed location - :param location: models.ThreadLocation: INBOX, PENDING, ARCHIVED or OTHER + :param location: ThreadLocation: INBOX, PENDING, ARCHIVED or OTHER :param thread_ids: Thread IDs to move. See :ref:`intro_threads` :return: True :raises: FBchatException if request failed @@ -2977,8 +2975,8 @@ class Client(object): :param ts: The timestamp of the message :param metadata: Extra metadata about the message :param msg: A full set of the data recieved - :type message_object: models.Message - :type thread_type: models.ThreadType + :type message_object: Message + :type thread_type: ThreadType """ log.info("{} from {} in {}".format(message_object, thread_id, thread_type.name)) @@ -3004,8 +3002,8 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type new_color: models.ThreadColor - :type thread_type: models.ThreadType + :type new_color: ThreadColor + :type thread_type: ThreadType """ log.info( "Color change from {} in {} ({}): {}".format( @@ -3035,7 +3033,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "Emoji change from {} in {} ({}): {}".format( @@ -3065,7 +3063,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "Title change from {} in {} ({}): {}".format( @@ -3093,7 +3091,7 @@ class Client(object): :param thread_type: Type of thread that the action was sent to. See :ref:`intro_threads` :param ts: A timestamp of the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info("{} changed thread image in {}".format(author_id, thread_id)) @@ -3121,7 +3119,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "Nickname change from {} in {} ({}) for {}: {}".format( @@ -3218,7 +3216,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "Messages seen by {} in {} ({}) at {}s".format( @@ -3246,7 +3244,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "Messages {} delivered to {} in {} ({}) at {}s".format( @@ -3266,7 +3264,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "Marked messages as seen in threads {} at {}s".format( @@ -3292,7 +3290,7 @@ class Client(object): :param thread_type: Type of thread that the action was sent to. See :ref:`intro_threads` :param ts: A timestamp of the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "{} unsent the message {} in {} ({}) at {}s".format( @@ -3376,8 +3374,8 @@ class Client(object): :param thread_id: Thread ID that the action was sent to. See :ref:`intro_threads` :param thread_type: Type of thread that the action was sent to. See :ref:`intro_threads` :param msg: A full set of the data recieved - :type typing_status: models.TypingStatus - :type thread_type: models.ThreadType + :type typing_status: TypingStatus + :type thread_type: ThreadType """ pass @@ -3409,7 +3407,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( '{} played "{}" in {} ({})'.format( @@ -3438,8 +3436,8 @@ class Client(object): :param thread_type: Type of thread that the action was sent to. See :ref:`intro_threads` :param ts: A timestamp of the action :param msg: A full set of the data recieved - :type reaction: models.MessageReaction - :type thread_type: models.ThreadType + :type reaction: MessageReaction + :type thread_type: ThreadType """ log.info( "{} reacted to message {} with {} in {} ({})".format( @@ -3465,7 +3463,7 @@ class Client(object): :param thread_type: Type of thread that the action was sent to. See :ref:`intro_threads` :param ts: A timestamp of the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "{} removed reaction from {} message in {} ({})".format( @@ -3484,7 +3482,7 @@ class Client(object): :param thread_type: Type of thread that the action was sent to. See :ref:`intro_threads` :param ts: A timestamp of the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "{} blocked {} ({}) thread".format(author_id, thread_id, thread_type.name) @@ -3501,7 +3499,7 @@ class Client(object): :param thread_type: Type of thread that the action was sent to. See :ref:`intro_threads` :param ts: A timestamp of the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "{} unblocked {} ({}) thread".format(author_id, thread_id, thread_type.name) @@ -3527,8 +3525,8 @@ class Client(object): :param thread_type: Type of thread that the action was sent to. See :ref:`intro_threads` :param ts: A timestamp of the action :param msg: A full set of the data recieved - :type location: models.LiveLocationAttachment - :type thread_type: models.ThreadType + :type location: LiveLocationAttachment + :type thread_type: ThreadType """ log.info( "{} sent live location info in {} ({}) with latitude {} and longitude {}".format( @@ -3561,7 +3559,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "{} started call in {} ({})".format(caller_id, thread_id, thread_type.name) @@ -3594,7 +3592,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "{} ended call in {} ({})".format(caller_id, thread_id, thread_type.name) @@ -3622,7 +3620,7 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ log.info( "{} joined call in {} ({})".format(joined_id, thread_id, thread_type.name) @@ -3650,8 +3648,8 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type poll: models.Poll - :type thread_type: models.ThreadType + :type poll: Poll + :type thread_type: ThreadType """ log.info( "{} created poll {} in {} ({})".format( @@ -3683,8 +3681,8 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type poll: models.Poll - :type thread_type: models.ThreadType + :type poll: Poll + :type thread_type: ThreadType """ log.info( "{} voted in poll {} in {} ({})".format( @@ -3714,8 +3712,8 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type plan: models.Plan - :type thread_type: models.ThreadType + :type plan: Plan + :type thread_type: ThreadType """ log.info( "{} created plan {} in {} ({})".format( @@ -3743,8 +3741,8 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type plan: models.Plan - :type thread_type: models.ThreadType + :type plan: Plan + :type thread_type: ThreadType """ log.info( "Plan {} has ended in {} ({})".format(plan, thread_id, thread_type.name) @@ -3772,8 +3770,8 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type plan: models.Plan - :type thread_type: models.ThreadType + :type plan: Plan + :type thread_type: ThreadType """ log.info( "{} edited plan {} in {} ({})".format( @@ -3803,8 +3801,8 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type plan: models.Plan - :type thread_type: models.ThreadType + :type plan: Plan + :type thread_type: ThreadType """ log.info( "{} deleted plan {} in {} ({})".format( @@ -3836,9 +3834,9 @@ class Client(object): :param ts: A timestamp of the action :param metadata: Extra metadata about the action :param msg: A full set of the data recieved - :type plan: models.Plan + :type plan: Plan :type take_part: bool - :type thread_type: models.ThreadType + :type thread_type: ThreadType """ if take_part: log.info( @@ -3875,7 +3873,7 @@ class Client(object): """ Called when the client is listening and client receives information about friend active status - :param statuses: Dictionary with user IDs as keys and :class:`models.ActiveStatus` as values + :param statuses: Dictionary with user IDs as keys and :class:`ActiveStatus` as values :param msg: A full set of the data recieved :type statuses: dict """