Beispiel #1
0
    def get_message(self, msg_id):
        """

        @param msg_id:
        @type msg_id: int
        @return:
        @rtype: Message
        """
        if not msg_id:
            msg_id = self.msg_id

        with self.redis.pipeline() as trans:
            message = Message(0, '')
            trans.hgetall(self.__set_msg_string(msg_id))
            message._values = trans.execute()[0]

        return message
Beispiel #2
0
    def get_user_messages(self, user_id, start_range=0, end_range=-1):
        """
        Returns the messages for a user within a range.

        Example: if start_range = 0, end_range = 9 then it returns the first 10
        messages ever posted by this user (remember it's len - 1 like arrays)

        @param user_id: id of the user to get messages
        @type user_id: int
        @param start_range: by default, gets the first message ever posted
        @type start_range: int
        @param end_range: by default, gets up to the last message ever posted
        @type end_range: int
        @return: all messages within the given range for a user
        @rtype: Message
        """

        msg_ids = self.redis.lrange(
            self._set_key_string('%s:%s' % (UserHelper._QUERY_STRING, user_id),
                                 User.POSTS_ID_KEY), start_range, end_range)

        messages = list()

        with self.redis.pipeline() as trans:
            for msg_id in msg_ids:
                trans.hgetall(self.__set_msg_string(msg_id))

            messages = trans.execute()

        msg_list = []

        for msg in messages:
            next_msg = Message(0, '')
            next_msg._values = msg
            msg_list.append(next_msg)
        return msg_list