def leave(self): """Leave this conversation. Raises: .NetworkError: If conversation cannot be left. """ is_group_conversation = ( self._conversation.type == hangouts_pb2.CONVERSATION_TYPE_GROUP) try: if is_group_conversation: yield from self._client.remove_user( hangouts_pb2.RemoveUserRequest( request_header=self._client.get_request_header(), event_request_header=self._get_event_request_header(), )) else: yield from self._client.delete_conversation( hangouts_pb2.DeleteConversationRequest( request_header=self._client.get_request_header(), conversation_id=hangouts_pb2.ConversationId( id=self.id_), delete_upper_bound_timestamp=parsers.to_timestamp( datetime.datetime.now(tz=datetime.timezone.utc)))) except exceptions.NetworkError as e: logger.warning('Failed to leave conversation: {}'.format(e)) raise
def deleteconversation(self, conversation_id): """Delete one-to-one conversation. One-to-one conversations are "sticky"; they can't actually be deleted. This API clears the event history of the specified conversation up to delete_upper_bound_timestamp, hiding it if no events remain. conversation_id must be a valid conversation ID. Raises hangups.NetworkError if the request fails. """ timestamp = parsers.to_timestamp( datetime.datetime.now(tz=datetime.timezone.utc) ) request = hangouts_pb2.DeleteConversationRequest( request_header=self._get_request_header_pb(), conversation_id=hangouts_pb2.ConversationId(id=conversation_id), delete_upper_bound_timestamp=timestamp ) response = hangouts_pb2.DeleteConversationResponse() yield from self._pb_request('conversations/deleteconversation', request, response) return response